Kafka CooperativeStickyAssignor 将所有分区分配给 1 个消费者

问题描述 投票:0回答:0

设置:

  • kafka 2.8(服务器)和 java org.apache.kafka kafka-clients 版本:3.0.0
  • 运行 kafka 消费者的 kubernetes 上的 4 个 pod
  • 消费者属性:最大轮询间隔为 5 分钟,会话为 45 秒
  • 所有消费者“订阅”同一个主题,使用消费者组。id
  • 将 partition.assignment.strategy 设置为 CooperativeStickyAssignor
  • 1024个分区

问题

我正在监控哪些分区被分配给了哪个消费者/pod,当我使用 pod 的数量(同时删除/重新创建 1 个 pod 或所有 pod)时,我发现了一些大问题

  • 连续5分钟,有时会出现不是所有分区都分配到,然后都分配好,均衡的情况。我不明白为什么再平衡没有更早发生,因为会话长度是 45 秒

  • 有时所有分区都分配给 1 个消费者。查看日志,它说分区已分配给消费者 1 和消费者 2(没有任何“撤销”),但实际上在测试时所有分区仅由 1 个消费者使用

知道配置有什么问题吗?我试图让它尽可能接近默认值。非常感谢任何帮助

apache-kafka kafka-consumer-api
© www.soinside.com 2019 - 2024. All rights reserved.