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

Kafka重新平衡,以防组中的一个订户被严格分配到特定分区

百里伟
2023-03-14

Kafka重新平衡旨在将主题的所有分区重新分配给订阅组活动成员,以便在任何给定时刻只有一个使用者使用任何主题分区。因此,如果消费者刚刚订阅了一个主题,那么一切都很清楚,但消费者api还提供了一种方法,可以将特定分区分配给消费者:

void分配(集合)

现在假设我们有:

  • 一个有5个分区的主题:1,2,3,4,5
  • 有3个成员的消费群体:1,2,3
  • 成员1和2刚刚订阅了一个主题,成员3已经将分区1分配给自己

那么,在这种情况下,重新平衡将如何工作呢?分区1是否总是分配给成员3(当它还活着的时候),导致其他成员只能从其他分区(2,3,4,5)读取?组协调器是否也可以分配另一个分区给成员3?当成员3关闭后又回来时,分区1会发生什么?

提前谢谢


共有1个答案

柯建修
2023-03-14

在Kafka文档中找到:

<代码>公共空分配(集合

通过此方法进行的手动主题分配不使用使用者的组管理功能。因此,当组成员资格或群集和主题元数据更改时,不会触发重新平衡操作。请注意,不可能同时使用带分配(集合)的手动分区分配和带订阅(集合,消费者重新平衡监听器)的组分配。

因此,组中的所有使用者都应该使用手动分区分配或仅使用订阅(获取分区的动态分配)。

 类似资料:
  • 我遇到了一件关于Kafka再平衡的奇怪事情。如果我增加某个主题的分区,而该主题是由一些java使用者(在同一个组中)订阅的,则不会发生使用者再平衡。在那之后,我试图通过启动一个新的消费者(或杀死一个消费者)来实现重新平衡,但在这个重新平衡中无法分配新增加的分区。我发现只有在停止所有使用者并启动它们之后,才能分配新分区。我不知道这是正常还是有任何解释。 下面是我在电脑上的测试: 1.启动Kafka,

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

  • 当我们的kafka主题中有多个分区时,分区重新平衡是一件常见的事情吗? 这并不一定意味着我们的应用程序存在延迟或问题? 我一直看到分区被撤销和重新分配的日志。

  • 本文向大家介绍消费组与分区重平衡相关面试题,主要包含被问及消费组与分区重平衡时的应答技巧和注意事项,需要的朋友参考一下 当有新的消费者加入到消费者组时,原本的分区就需要重新分配;比如一个topic有30个分区,原本只有两个消费者,每人负责15个分区,当新加入一个消费者时,并没有分区可以给他消费,只能是将30个分区重新分配。 每个消费者组都会有一个broker负责协调(称为group coordin

  • 有人能帮忙吗?原因和解决方法是什么? 此外,当我的1个kafka代理关闭时,我的kafka流应用程序没有连接到其他代理?我已经设置了

  • 我发现分区“Tracking-3”上的消息没有被消耗!! 问题每次都会重现,在新分配的分区中有一些消息丢失,你能有什么建议吗?请帮帮我,谢谢