Kafka 消费者正在花时间识别新分区

Kafka consumer is taking time to recognize new partition

我是 运行 kafka 消费者从一个主题的多个分区读取数据的测试。虽然过程是 运行,但我添加了更多分区。消费者线程从新分区读取数据大约需要 5 分钟。我找到了这个配置 "topic.metadata.refresh.interval.ms",但这仅适用于生产者。消费者也有类似的配置吗?

当我们向现有主题添加更多分区时,将启动重新平衡过程。

一个consumer group中的每个consumer都独占分配了一个或多个topic partition,Rebalance就是consumer之间partition所有权的重新分配。

再平衡发生在:

  1. 消费者加入群组
  2. 消费者完全关闭
  3. 组协调员认为消费者已死亡。这可能发生在 崩溃或当消费者忙于 long-运行 处理时,这意味着 同时消费者没有向客户端发送心跳 配置的会话间隔内的组协调器
  4. new partitions are added

我们需要提供两个参数来减少重新平衡的时间。

request.timeout.ms

max.poll.interval.ms

更详细的信息可以在下面找到。

https://medium.com/streamthoughts/apache-kafka-rebalance-protocol-or-the-magic-behind-your-streams-applications-e94baf68e4f2

我更改了“metadata.max.age.ms”参数值来刷新元数据https://kafka.apache.org/documentation/#consumerconfigs_metadata.max.age.ms