You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否配置Spring @KafkaListener仅处理同Key的最新消息条目?

Kafka同Key消息消费行为解答

官方依据

任何跟上日志头部进度的消费者都会看到所有写入的消息;这些消息的偏移量是连续的。

问题场景

Kafka主题清理策略设置为[compact,delete],1秒内发送10000条同Key但值随机的消息,Spring @KafkaListener中加入Thread.sleep(5000)模拟消费延迟,咨询监听器会处理全部消息还是仅处理最新一条。

结论与分析

监听器会处理全部10000条消息,原因如下:

  • 日志压缩是后台异步执行的清理机制,不会实时拦截新写入的消息。短时间内写入的同Key消息会完整保存在日志头部,不会立即被压缩清理。
  • 即便消费者因Thread.sleep产生延迟,只要没有落后到已被压缩清理的旧日志段,就会接收到所有写入的消息,包括同Key的历史消息。
  • 日志压缩仅针对非活跃的日志段,定期清理旧的同Key消息以保留最新值,但这个过程不会影响正在写入的头部日志,也不会干预已经推送给消费者的消息。

内容的提问来源于stack exchange,提问作者Archimedes Trajano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 04:34:56