当前位置: 首页 > 知识库问答 >
问题:

Kafka分区再平衡

松高爽
2023-03-14

当我们的kafka主题中有多个分区时,分区重新平衡是一件常见的事情吗?

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

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

共有3个答案

韩景辉
2023-03-14

关于你提出的再平衡是否普遍的问题。

如果一个应用程序看到了太多的重新标记,那么它肯定会说应用程序出了问题,或者可能在代理端出了问题。所以在这种情况下这不是一件常见的事情。

虽然这是非常常见的,当您不经常看到此事件时,比如在应用程序开始时或消费者之间的任何故障转移。

重要的一点:

  • 再平衡时间窗口对消费者来说是不可用的,因为在再平衡完成之前,他们将无法阅读任何消息,如果再平衡太多,可能会损害你的整体吞吐量
太叔繁
2023-03-14

您使用消费者组吗?通常情况下,msg“分区被撤销和重新分配”可以在以下两种情况下看到。

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

情景1-

假设消费者3因某种原因下降。

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

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

情景2

此外,当消费者3稍后启动时,它将被重新分配到要消耗到处理的分区。您将再次看到相同的msg。

暨曾笑
2023-03-14

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

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

 类似资料:
  • 在消费者之间重新平衡分区的代价有多大。我期待着每隔几秒钟就有一个新的消费者结束或加入同一个消费者群体。所以我只想知道一个再平衡操作的开销和延迟。 假设使用者C1具有分配给它的分区P1、P2、P3,并且它正在处理来自分区P1的消息M1。现在消费者C2加入了这个群体。C1和C2之间的分区是如何划分的。是否有可能拒绝C1的(可能需要一些时间将其消息提交给Kafka)对M1的提交,而M1将被视为一个新的消

  • 我对再平衡有些怀疑。现在,我正在手动将分区分配给使用者。因此,根据文件,如果消费者离开/崩溃在一个消费群体中,就不会有再平衡。 假设同一组中有3个分区和3个使用者,每个分区都是手动分配给每个使用者的。一段时间后,第三个消费者倒下了。既然没有再平衡,我可以采取什么措施来确保停机时间最小化?我是否需要更改前两个分区中任何一个的配置,以从第三个分区或其他分区开始使用?

  • 首先,很抱歉,如果我的术语不准确,我对Kafka很陌生,我已经尽可能多地读过了。我们有一个使用kafkastreams的服务,kafka版本:2.3.1。流应用程序具有一个流拓扑,该流拓扑从“topica”读取,执行转换并发布到另一个主题“topicb”,然后由拓扑的另一个流消费,并使用Ktable(localstore)聚合它。侦听器将ktable更改发布到另一个主题中。 主题有24个分区。我们

  • 我知道在你的流中的任何时间点都可能发生再平衡。当它发生时,由于没有提交给定偏移量的最新偏移量,可能会发生事件的重新处理。 Kafka流是否允许在重新平衡发生之前完成任何飞行中处理?我的意思是,你的应用程序正在消耗一个记录(在你的过程方法内部),发生一个再平衡事件。该处理是否立即中止或允许处理方法完成? 一个具体的例子是 最后一次计算是否会在状态存储中结束并转发到接收器主题?因此,这意味着当重新平衡

  • 当使用者组a的一个Kafka使用者连接到Kafka代理时,我希望搜索到所有分区的末尾,即使在代理端存储了一个偏移量。如果更多的其他消费者为同一个消费者组连接,他们应该提取最新存储的偏移量。我正在做以下工作: 问题是,当我连接消费者组A的第一个消费者c1时,一切都按预期工作,如果我连接消费者组A的另一个消费者c2,该组将重新平衡,c1将消耗跳过的抵消。 有什么想法吗?

  • 我用Kafka-斯特里姆齐算子在库伯内特斯上运行Kafka。我正在使用增量粘性再平衡策略,通过以下配置我的消费者: 每次我在我的消费者组中缩放消费者时,该组中的所有现有消费者都会生成以下异常 线程“main”组织中出现异常。阿帕奇。Kafka。常见的错误。RebalanceInProgressException:由于使用者正在进行自动分区分配的重新平衡,因此无法完成偏移量提交。您可以通过调用pol