4.9. 最小化重新平衡的影响


在组中活跃消费者间重新平衡分区是进行以下所需的时间:

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

重新平衡过程可能会增加服务的停机时间,特别是在消费者组集群滚动重启后重复发生时。

在这种情况下,您可以通过为组中的每个消费者实例分配唯一标识符(group.instance.id)来引入 静态成员资格。静态成员资格使用持久性,以便在会话超时后重启过程中识别消费者实例。因此,消费者维护其主题分区的分配,从而减少在故障或重启后重新加入组时不必要的重新平衡。

另外,调整 max.poll.interval.ms 配置可能会阻止由延长的处理任务导致的重新平衡,允许您指定对新消息的轮询之间的最大间隔。使用 max.poll.records 属性在每个轮询期间从消费者缓冲区返回的记录数上限。减少记录数量可让消费者更有效地处理较少的消息。如果冗长的消息处理不可避免,请考虑将此类任务卸载到 worker 线程池。这种并行处理方法可防止因为大量记录的消费者造成延迟和潜在的重新平衡。

# ...
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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部