在Kafka的作品中,群体协调者和控制者有什么区别?

ktca8awb  于 2023-03-07  发布在  Apache
关注(0)|答案(1)|浏览(108)

我在文件上看到

控制器:我们选择代理之一作为“控制器”。2该控制器在代理级别检测故障,并负责改变故障代理中所有受影响分区的领导者。

在Kafka群集中,其中一个代理充当控制器,负责管理分区和副本的状态,并执行管理任务(如重新分配分区)。在任何给定时间,群集中只有一个控制器代理。

小组协调员:Kafka经纪人中的一个被选为组协调员。2当消费者想要加入组时,它向协调员发送请求。3第一个加入组的消费者成为领导者。4之后加入的所有其他消费者成为组的成员。

哪一个会被选为组协调员?2是否总是同一个经纪人作为控制者?3我怎样才能找到组协调员?

ubby3x7f

ubby3x7f1#

组协调器用于每个使用者组,所以本质上,每个集群只有一个控制器,但是有多个组协调器(每个使用者组一个)
所以,不,集团协调人不会总是同一个经纪人,是控制器。
要查找哪个代理是使用者组的组协调器,可以运行:

./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group my-consumer-group --describe --state

Controller和Group-Coordinator的区别在于角色不同,Controller的主要工作是为主题的每个分区选举领导者,管理集群元数据,检测其他代理的故障;组协调器的角色是管理消费者组,特别是分区再平衡。
这是决定哪个经纪人将成为小组协调人的方式
使用者示例启动时,它会将包含其www.example.com的FindCoordinator请求发送group.id到集群中的任何代理。代理将创建group.id的散列,并将其与internal __consumer_offsets主题中的分区数进行模运算。这将确定将向哪个分区写入该组的所有元数据事件。托管该分区的领导者副本的代理将承担新使用者组的组协调器的角色。
此处显示完整详细信息

相关问题