Board logo

标题: Kafka的通讯协议(2) [打印本页]

作者: look_w    时间: 2019-1-11 18:19     标题: Kafka的通讯协议(2)

MessageSetMessageSet用来组合多条Message,它在每条Message的基础上加上了Offset和MessageSize,其结构是:
MessageSet => [Offset MessageSize Message]它的含义是MessageSet是个数组,数组的每个元素由三部分组成,分别是Offset,MessageSize和Message,它们的含义分别是:
名称类型描述Offsetint64它用来作为log中的序列号,Producer在生产消息的时候还不知道具体的值是什么,可以随便填个数字进去MessageSizeint32表示这条Message的大小Message-表示这条Message的具体内容,其格式见上一小节。Message的压缩Kafka支持下面几种压缩方式,
压缩方式编码不压缩0Gzip1Snappy2LZ43其中编码就是Message的Attribute的最低两位的值。
因为单条消息中重复内容可能不多,所以通常把多条消息放在一起组成MessageSet,然后再把MessageSet放到一条Message里面去,从而提高压缩比率。
Request/Respone和Message/MessageSet的关系小结Kafka的通讯协议中不含Schema,格式也比较简单,这样设计的好处是协议自身的Overhead小,再加上把多条Message放在一起做压缩,提高压缩比率,从而在网络上传输的数据量会少一些。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0