我在生产者端启用了快速压缩,批处理大小为64kb,并处理了每个1kb的消息,并将延迟时间设置为inf,这是否意味着直到我处理64条消息,生产者才不会将消息发送给kafka主题... 换句话说,生产者将每条消息发送到kafka或等待64条消息并将其分批发送...
因为偏移量是一乘而不是64的倍数
编辑-使用flink-kafka连接器
答案 0 :(得分:1)
消息由生产者批处理,以便将网络使用率降至最低,以免“成批”写入Kafka的提交日志中。您所看到的是Kafka正确完成的,因为需要考虑每条消息,即已标识的键/分区关系,附加到提交日志中,然后增加偏移量。除非完成前两个步骤,否则偏移量不会增加。
此外,还需要根据配置进行数据复制,并且消息跟踪系统会针对收到的每条消息进行更新(以支持滞后api)。
还请注意,batch.size参数认为已准备好发送邮件的大小,该大小已预处理为1.压缩2.由您最喜欢的序列化程序序列化。