4.8. 最大程度降低重新平衡的影响


在一个组中的活跃消费者之间重新平衡分区是需要的时间:

  • 消费者提交其偏移量
  • 要形成的新消费者组
  • 为组成员分配分区的组领导
  • 组中的消费者接收其分配并开始获取

明确而言,该过程会增加服务的停机时间,特别是在消费者组集群滚动重启过程中重复发生。

在这种情况下,您可以使用 静态成员资格 的概念来减少重新平衡的数量。在消费者组成员间平均重新平衡分配主题分区。静态成员资格使用持久性,以便在会话超时重启后识别消费者实例。

消费者组协调器可以使用 group.instance.id 属性指定的唯一 id 来识别新的消费者实例。在重启过程中,为消费者分配一个新的成员 ID,但作为静态成员,它继续使用同一实例 ID,并且使用相同的主题分区分配。

如果消费者应用程序没有调用至少轮询每个 max.poll.interval.ms 毫秒,则消费者被视为失败,从而导致重新平衡。如果应用程序无法处理轮询时间返回的所有记录,您可以使用 max.poll.interval.ms 属性指定从消费者轮询新消息之间的间隔(毫秒)。或者,您可以使用 max.poll.records 属性对从消费者缓冲区返回的记录数量设置最大限制,允许您的应用程序在 max.poll.interval.ms 限值内处理较少的记录。

# ...
group.instance.id=UNIQUE-ID 
1

max.poll.interval.ms=300000 
2

max.poll.records=500 
3

# ...
Copy to Clipboard Toggle word wrap
1
唯一的实例 id 确保新消费者实例收到相同的主题分区分配。
2
设置检查消费者继续处理消息的间隔。
3
设置从消费者返回的已处理的记录数量。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat