卡夫卡消费者群体能否在重新平衡期间冻结

时间:2020-09-20 08:43:26

标签: apache-kafka kafka-consumer-api continuous-deployment apache-kafka-broker

Kafka消费者组的滚动部署会导致该组冻结吗?

所以让我们考虑一下这种情况,

  1. 我们开始滚动部署
  2. 一个消费者离开小组
  3. Kafka注意到这一点并触发重新平衡(因此消耗停止)
  4. 发生重新平衡,但很快有新的消费者想要加入
  5. 另一个消费者也离开了
  6. 再次发生新的平衡
  7. (循环直到部署完成)

因此,如果您有足够大的群集,并且在一台计算机上完成部署需要花费一些时间(通常是这种情况),这会导致消耗量完全冻结吗?

如果是,在生产中进行消费者群体更新的策略是什么

1 个答案:

答案 0 :(得分:4)

是的,这绝对是可能的。最近有许多改进措施可以缓解此类事件期间的停机时间。我建议启用以下一项或两项功能:

Static membership已在2.3中添加,可以防止在该组的某个已知成员被退回时发生重新平衡。这要求客户端和代理都必须使用2.3+版本。

Incremental cooperative rebalancing使该组具有更快的重新平衡,并允许单个成员在整个重新平衡过程中继续消费。在滚动部署期间,您仍然会看到重新平衡,但是在整个过程中它们不会导致消耗量完全冻结。这完全是客户端,因此可以与任何代理一起使用,但是您的客户端应使用2.5.1+版本