Kafka日志格式

Posted 绝世好阿狸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kafka日志格式相关的知识,希望对你有一定的参考价值。

任务数据想要持久化或者进行网络传输,都需要进行序列化。序列化方式可以分两种:字节流或者字符流。

字节流:机器友好,传输效率更高,占用更小的空间,如果追求性能,优先考虑。常见的比如mysql、kafka等,都使用的字节流协议;

字符流:人类友好,可读性更好,拿到消息体后便可解析消息内容。但是效率较低,毕竟一个字符至少占用一个字节。常见的比如http协议就是字符流协议;

下面看下kafka的消息格式或者协议。

kafka消息格式经过了几个版本。

消息以消息集的形式存在。消息集内的每一条消息由offset、size以及record组成。

如果消息设置了压缩,则被压缩的多条消息内嵌为一条消息的record,offset为多条消息的最大值。

另外为了提升存储效率,kafka借鉴了protobuff的varint以及zigzag编码格式。

最新版的消息格式:

 

(注:图片均来自掘金小册

 

以上是关于Kafka日志格式的主要内容,如果未能解决你的问题,请参考以下文章

以人类可读的格式显示容器弃用日志?

如何以人类可读的格式输出(到日志)多级数组?

Kafka日志存储详解

logstash写入到kafka和从kafka读取日志

Filebeat7 Kafka Gunicorn Flask Web应用程序日志采集

kafka利用log4j输出日志到哪里