【问题标题】:How to introduce delay in rebalancing in case of kafka consumer group?如何在 kafka 消费组的情况下引入再平衡延迟?
【发布时间】:2019-10-26 22:03:56
【问题描述】:

我想给我的消费者一些时间来重新启动,这样就不会发生不必要的重新平衡。我怎样才能做到这一点? 在关闭的情况下,我希望复制出现,如果消费者没有备份一段时间后,重新平衡应该发生,否则不会。

【问题讨论】:

  • 我有 3 个消费者组实例。 1 宕机,数据立即开始在其他 2 台机器上复制,无需等待。在某个可接受的时间内,原始实例会恢复。这种数据移动对我来说是不必要的。如果经过的时间大于可配置的可接受时间,则应开始数据移动。
  • 我认为“静态组成员身份”是您正在寻找的。它是即将发布的 Kafka 2.3 版本的一部分。详情见对应KIP:cwiki.apache.org/confluence/display/KAFKA/…
  • 2.3 版本是否按计划进行,或者时间表是否有任何变化?
  • 投票已经在进行中。如果没有找到拦截器,2.3应该很快就会发布。

标签: apache-kafka apache-kafka-streams


【解决方案1】:

您可以调整名为 group.initial.rebalance.delay.ms 的代理级别配置。

组协调器等待更多消费者的时间 在执行第一次重新平衡之前加入一个新组。更长的 延迟意味着可能更少的重新平衡,但增加了直到 处理开始。

https://kafka.apache.org/documentation/

【讨论】:

  • 此配置仅在您创建新的消费者组时有效,并且仅在第一个消费者加入空组时才考虑延迟。
  • @MatthiasJ.Sax per the Wiki, cwiki.apache.org/confluence/display/KAFKA/…,此设置适用于“新的或空的消费者组的初始重新平衡”。我意识到它在这里对 OP 没有帮助,因为它不适用于有消费者的团体,但这意味着没有成员的现有团体也将从延迟中受益。这是你的理解吗?自 2019 年 6 月发表此评论以来,情况是否发生了变化?
  • 到目前为止没有任何改变。 -- 不是配置名称包含initial 并且参数的描述还说:加入 new 组。 -- 我不完全确定 atm 是否适用于现有但空的组。
猜你喜欢
  • 2020-06-30
  • 2015-04-18
  • 1970-01-01
  • 2015-01-26
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 1970-01-01
  • 2020-04-02
相关资源
最近更新 更多