【问题标题】:Kafka partition rebalancingKafka 分区再平衡
【发布时间】:2018-11-19 01:54:17
【问题描述】:

当我们的 kafka 主题中有多个分区时,分区重新平衡是否很常见?

这并不一定意味着我们的应用存在延迟或问题?

我一直看到分区被撤销和重新分配的日志。

【问题讨论】:

  • 你是指leader选举还是consumer group再平衡? “分区再平衡”不是一回事
  • 我的意思是消费者群体再平衡。另外,还有一个叫做“分区重新平衡”safaribooksonline.com/library/view/kafka-the-definitive/…
  • 我猜这个词有点夸张。当然,分区 assignments 被重新平衡到消费者实例。分区内的数据未“重新平衡”

标签: apache-kafka kafka-consumer-api


【解决方案1】:

一般来说,是的,再平衡意味着您可能有一个不稳定/空闲的客户端,由于各种原因,代理“不健康”,或者其他网络/操作系统级别的问题......当再平衡发生时,没有消费发生,因此引入了滞后。

为了更好地了解 Kafka 集群和客户端,建议look over JMX metrics 除了网络、CPU、内存、磁盘等其他系统级指标,而不仅仅是 Kafka 进程日志

【讨论】:

    【解决方案2】:

    您使用消费者组吗?通常,msg "partitions being revoke and reassigned"- 出现在以下 2 种场景中。

    假设您有一个由 3 个消费者组成的消费者组,每个消费者单独消费\处理 1 个 Kafka 代理分区。

    场景 1-

    假设消费者 3 出于某种原因宕机。

    随后 kafka 暂时撤销对第三个消费者的分区分配(直到它启动并运行)并将分区重新分配给消费者 1 或 2。

    在这种情况下,我们会看到这样的消息。

    场景 - 2

    另外,当消费者 3 稍后启动时,它将被重新分配分区以消费来处理。 您将再次看到相同的消息。

    【讨论】:

      【解决方案3】:

      关于你关于再平衡是否常见的问题。

      如果应用程序看到过多的 relancing,那么它肯定说明应用程序有问题,或者可能是代理端有问题。所以在这种情况下这并不常见。

      虽然当您在应用程序启动时或在消费者之间的任何故障转移之间不太频繁地看到此事件时,这很常见。

      注意点:

      • 重新平衡时间窗口对于消费者来说不可用,因为在重新平衡完成之前他们将无法读取任何消息,如果发生过多的重新平衡,这可能会损害您的整体吞吐量。李>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-03
        • 2019-02-27
        • 2018-10-04
        • 1970-01-01
        • 1970-01-01
        • 2017-03-25
        • 2020-06-30
        相关资源
        最近更新 更多