【问题标题】:kafka partition rebalancing (assignment) is taking too much timekafka 分区再平衡(分配)耗时太长
【发布时间】:2016-08-09 03:11:57
【问题描述】:

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

请注意,我使用的是 kafka 0.9,带有新的消费者

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

auto.leader.rebalance.enable=true
leader.imbalance.check.interval.seconds=10

如果您需要更多信息,请告诉我。 谢谢

【问题讨论】:

    标签: apache-kafka kafka-consumer-api kafka-producer-api


    【解决方案1】:

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

    默认值为 30 秒,直到该时间过去,协调才会触发重新平衡。 30 秒内没有心跳。

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

    【讨论】:

    • 是的,这可能是原因,因为我使用长会话超时为 5 分钟,消息处理大约需要 2-3 分钟。有没有其他办法?
    • 如果处理一条消息需要那么长时间,那么不会。您总是可以将消息写入数据库并让其他进程完成繁重的工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 2021-09-02
    相关资源
    最近更新 更多