12.4.2.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
# ...
1
唯一的实例 ID 可确保新使用者实例接收相同的主题分区分配。
2
设置检查消费者是否继续处理消息的时间间隔。
3
设置从使用者返回的已处理记录数。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.