【问题标题】:Kafka - what is the real significance of Consumer Group LeaderKafka——Consumer Group Leader的真正意义是什么
【发布时间】:2020-11-13 01:30:51
【问题描述】:

这是关于消费组组长和消费者组协调员的。我通过文档了解了“组组长”和“组协调员”的职责,尤其是担任其他角色的重要原因,例如“组组长” "

看起来“组协调员”主要负责组管理,无论是在管理消费者成员资格、偏移量、重新平衡等方面。唯一一次需要“组领导”来“计算分区分配”

在决定分区分配后,消费者组领导将分配列表发送给组协调器,组协调器将此信息发送给所有消费者。每个消费者只看到自己的任务

“组长”是否扮演任何其他“重要角色”? 真的需要什么东西来增加价值吗?

【问题讨论】:

    标签: apache-kafka confluent-platform


    【解决方案1】:

    组长所扮演的重要角色与 Kafka 遵循的分布式设计有关。虽然组协调员是经纪人之一,但组长是消费者之一。这意味着无论组长需要执行什么处理以提出分区分配,都将消耗来自消费者之一而不是 Kafka 代理之一的 CPU 时钟。这种方法可以减轻 Kafka 代理的 CPU 消耗,尤其是因为分区分配自此过程以来非常频繁地发生 每次重新平衡发生时都会重复。

    所以是的,组长只负责分区分配,但这是由其中一个消费者执行的事实意味着:

    • 性能:Kafka 代理的 I/O 限制应该多于 CPU 限制。在这种情况下,尽可能多地卸载 CPU 使用是明智之举。

    • 可扩展性:从概念上讲,给定的 Kafka 架构将由少数代理和大量消费者组成。将分区分配保留在消费者手中可确保更好的水平可扩展性,因为需要管理不同的消费者组,并且在边缘执行大量消费者,这种工作负载可以均匀分布。

    此外,将分区分配委托给组长允许不同的消费者组使用不同的分区分配策略。单个组协调器可以协调多个消费者组,因此在那里执行分区分配将需要由该协调器管理的所有组使用相同的策略。

    【讨论】:

    • 太棒了。能否请您分享一些不同消费者群体可能需要不同策略的用例,这是支持组长需求的原因之一
    • 不同的策略有助于让消费者能够控制分区将如何登陆每个消费者线程。 Range 允许共同分区,这对于确保同一线程将从具有键控记录的主题中读取很有用,但它可能会导致空闲线程。 RoundRobin 解决了这个问题并尝试在线程之间均匀分布分区,没有规定偏好。顾名思义,粘性试图将分区粘贴到线程中,以消除每次重新平衡发生时重新计算的需要。每个消费者群体的不同策略是一件好事:-)
    • 谢谢。您能否也请查看我的其他问题,尤其是stackoverflow.com/questions/63012732/kafka-controller-broker
    • 刚刚回复了!
    猜你喜欢
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 2019-10-03
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    相关资源
    最近更新 更多