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

Kafka中nack()后的消息:会被其他消费者获取还是仅重投给原消费者?

Kafka Nack消息的投递逻辑(多Consumer场景)
  • 核心取决于消费者组和分区分配的规则:
    1. 若其他Consumer和你的Consumer属于同一个消费者组:
      • 当你调用acknowledge.nack(6000L)时,消息会被标记为未处理,6秒后重新回到对应分区的待消费队列。
      • 如果在这6秒内,消费者组触发了重平衡(比如新Consumer加入、现有Consumer下线),该分区被分配给组内其他Consumer,那么延迟到期后,这条消息就会被新的Consumer获取。
      • 如果没有发生重平衡,分区始终由原Consumer持有,消息会重新投递给这个特定的Consumer。
    2. 若其他Consumer和你的Consumer属于不同消费者组:
      • 不同组的消费是完全独立的,各自维护自己的消费偏移量。不管你这边有没有Nack消息,其他组的Consumer都会正常拉取分区内的消息,不受影响。

简单总结:Nack不会把消息“绑定”给原Consumer,最终谁能拿到,看对应分区当前被哪个同组Consumer持有。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:29:59