Apache kafka apachekafka中的生产者端压缩

Apache kafka apachekafka中的生产者端压缩,apache-kafka,apache-flink,Apache Kafka,Apache Flink,我在制作者端启用了snappy压缩,批量大小为64kb,处理每个1KB的消息并将延迟时间设置为inf,这是否意味着在我处理64条消息之前,制作者不会将消息发送给kafka out topic。。。 换句话说,制作人是否会将每条消息发送给卡夫卡,或者等待64条消息并在单个批中发送它们 因为偏移量是一个接一个的增加,而不是64的倍数 编辑-使用flink-kafka连接器消息由制作人进行批处理,以最大限度地减少网络使用量,从而不会“批量”写入kafka的commitlog。您所看到的是Kafka正确

我在制作者端启用了snappy压缩,批量大小为64kb,处理每个1KB的消息并将延迟时间设置为inf,这是否意味着在我处理64条消息之前,制作者不会将消息发送给kafka out topic。。。 换句话说,制作人是否会将每条消息发送给卡夫卡,或者等待64条消息并在单个批中发送它们

因为偏移量是一个接一个的增加,而不是64的倍数


编辑-使用flink-kafka连接器

消息由制作人进行批处理,以最大限度地减少网络使用量,从而不会“批量”写入kafka的commitlog。您所看到的是Kafka正确地完成的,因为每个消息都需要说明,即标识的键/分区关系,附加到commitlog,然后偏移量增加。除非完成前两步,否则偏移量不会增加

此外,还需要根据配置进行数据复制,并为收到的每条消息更新消息跟踪系统(以支持lag API)


还要注意的是,batch.size参数考虑已预处理为1的准备发货邮件的大小。压缩2。由您最喜欢的序列化程序序列化。

至少在卡夫卡输出主题中,我们应该观察成批发送的消息。。。但我们没有观察到这种行为。。。我们正在一个接一个地接收信息。。。编辑-我使用的是flinkkafka连接器我们清楚地观察到,MSG在主题中作为一批突然出现(同时通过控制台消费者进行观察)。序列化和压缩可能会改变数据大小,从而影响批处理。尝试添加更多邮件~100条左右并发送。我发送了超过100000条邮件,每条邮件大小为1kb,批处理大小为128kb,但我们在使用flinkkafka连接器时观察到邮件一条接一条地发送。。。。。当我们在使用本机kafka连接器时观察到成批出现的消息时。。。那么这是flinkkafka连接器中的一个bug吗?请注意,您使用的是Flink Kafka,Flink会在内部将记录逐个提供给执行者(在并行中定义)。这是一种预期行为,如果您定义一个批处理窗口(例如5秒),所有记录将由Flink在内部缓冲,并将逐个提供给执行者进行处理。不确定你到底想观察什么。我已经创建了一个新的聊天室,如果需要进一步讨论,请点击这里