Go Kafka Consumer:重平衡期间的可用性设计
背景 扩缩容、实例重启、网络波动都会触发 rebalance。处理不好就会出现消费停顿、重复处理和延迟暴涨。 实践要点 处理逻辑幂等化 offset 提交时机明确 重平衡回调里做好 flush for msg := range claim.Messages() { if err := handle(msg); err == nil { session.MarkMessage(msg, "") } } 总结 消费者稳定性的上限,取决于你对 rebalance 的设计,而不是对“正常流量”的设计。 消息系统里,异常路径才是主路径。