kafka 分区重新平衡(分配)花费太多时间

Sun*_*pta 3 apache-kafka kafka-consumer-api kafka-producer-api

我们正在使用带有 3 个服务器的 kafka 集群,所有这些服务器也都有 zookeeper。我们有 7 个主题,每个主题有 6 个分区。每个主题我们有 3 个 Java 消费者。当我启动消费者时,将分区分配给消费者几乎需要 3-5 分钟。当我们停止其中一个消费者并再次启动时,会遇到相同的行为。我怎样才能控制或减少它?

请注意,我正在使用 kafka 0.9,新消费者

我在server.properties每个 kafka 中添加了以下属性

auto.leader.rebalance.enable=true
leader.imbalance.check.interval.seconds=10
Run Code Online (Sandbox Code Playgroud)

如果您需要更多信息,请与我们联系。谢谢

Mic*_*man 5

检查您的消费者为“session.timeout.ms”使用的值。

默认值为 30 秒,协调不会触发重新平衡,直到这个时间过去,例如 30 秒没有心跳。

降低此值的危险在于,如果您处理消息的时间过长,则可能会发生重新平衡,因为协调器会认为您的消费者已死。