【问题标题】:What is the difference in Kafka between a Consumer Group Coordinator and a Consumer Group Leader?Kafka 中的 Consumer Group Coordinator 和 Consumer Group Leader 有什么区别?
【发布时间】:2017-06-20 06:55:14
【问题描述】:

我看到对 Kafka Consumer Group Coordinators 和 Consumer Group Leaders 的引用......

  1. 有什么区别?

  2. 将集团管理分成两组不同的职责有什么好处?

【问题讨论】:

    标签: apache-kafka kafka-consumer-api


    【解决方案1】:

    1。有什么区别?

    消费者组协调员是代理之一,而组长是消费者组中的消费者之一。

    组协调器只不过是接收来自消费者组的所有消费者的心跳(或轮询消息)的代理之一。每个消费者组都有一个组协调员。如果消费者停止发送心跳,协调器将触发重新平衡。

    2。将集团管理分成两组不同的职责有什么好处?

    简答

    它为您提供更灵活/可扩展的分配策略,而无需重新启动代理。

    长答案

    这种分离的关键在于组长负责计算整个组的分配。

    表示这个分配策略可以在一个consumer上配置(见partition.assignment.strategyconsumer配置参数)。

    如果分区分配由消费者组协调员处理,则在不重新启动代理的情况下无法配置自定义分配策略。

    更多详情请见Kafka Client-side Assignment Proposal

    文档引用

    来自“Kafka The Definitive Guide”[Narkhede, Shapira & Palino, 2017]:

    当一个消费者想要加入一个消费者组时,它会发送一个JoinGroup 向小组协调员提出要求。第一个加入群组的消费者 成为小组领导。领导者收到所有的列表 来自组协调员的组中的消费者(这将包括 所有最近发送过心跳的消费者,因此 被认为是活着的),它负责分配一个子集 每个消费者的分区。它使用了一个实现 PartitionAssignor 接口决定哪些分区应该是 由哪个消费者处理。

    [...] 决定分区分配后,消费者领导者发送 发送给GroupCoordinator 的分配列表 向所有消费者提供信息。每个消费者只看到自己的 分配 - 领导者是唯一拥有完整的客户进程 组中的消费者列表及其分配。这个流程 每次重新平衡发生时都会重复。

    【讨论】:

    • 你能扩展你的答案来解释我的问题的#2吗?为什么不使用单一的联合协调者/领导者?
    • cwiki.apache.org/confluence/display/KAFKA/… 讨论了职责分离的动机。;tldr 灵活/可扩展的分配策略,无需重新启动代理
    • 协调员也是批准/不批准每个消费者提交的人,这是真的吗?
    • 此答案部分复制/粘贴自“Kafka:权威指南”,可在此处合法获取:confluent.io/wp-content/uploads/…
    • @VikasTikoo ,您是否可以对(2)进行总结并作为答案或评论发表
    猜你喜欢
    • 2020-11-13
    • 2016-11-03
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2020-01-25
    • 2019-09-04
    • 2014-06-01
    相关资源
    最近更新 更多