黑帽联盟

 找回密码
 会员注册
查看: 54|回复: 0
打印 上一主题 下一主题

[资源教程] Kafka 为什么使用消费者组?

[复制链接]

883

主题

38

听众

3276

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情

    昨天 20:27
  • 签到天数: 1606 天

    [LV.Master]伴坛终老

    1. 消费者组的特点

    21.jpeg


    这是 kafka 集群的典型部署模式。


    消费组保证了:


    • 一个分区只可以被消费组中的一个消费者所消费

    • 一个消费组中的一个消费者可以消费多个分区,例如 C1 消费了 P0, P3。

    • 一个消费组中的不同消费者消费的分区一定不会重复,例如:





    C1 -> P0、P3
    C2 -> P1、P2

    所有消费者一起消费所有的分区,例如 C1 和 C2 共同完成了对 P0、P1、P2、P3 的消费。


    在不同消费组中,每个消费组都会消费所有的分区,例如,消费组A、消费组B 都消费了 P0、P1、P2、P3。


    同一个消费组里面的消费者对分区是互斥的,例如 C1 和 C2 不会消费同一个分区;而分区在不同的消费组间是共享的。


    2. 消费者组的优势
    2.1 高性能

    22.jpeg


    假设一个主题有10个分区,如果没有消费者组,只有一个消费者对这10个分区消费,他的压力肯定大。

    23.jpeg



    如果有了消费者组,组内的成员就可以分担这10个分区的压力,提高消费性能。


    2.2 消费模式灵活
    假设有4个消费者订阅一个主题,不同的组合方式就可以形成不同的消费模式。

    24.jpeg



    使用4个消费者组,每组里放一个消费者,利用分区在消费者组间共享的特性,就实现了广播(发布订阅)模式。


    25.jpeg


    只使用一个消费者组,把4个消费者都放在一起,利用分区在组内成员间互斥的特性,就实现了单播(队列)模式。


    2.3 故障容灾
    如果只有一个消费者,出现故障后就比较麻烦了,但有了消费者组之后就方便多了。


    消费组会对其成员进行管理,在有消费者加入或者退出后,消费者成员列表发生变化,消费组就会执行再平衡的操作。


    例如一个消费者宕机后,之前分配给他的分区会重新分配给其他的消费者,实现消费者的故障容错。

    26.jpeg



    3. 小结
    消费者组的好处:


    • 消费效率更高
    • 消费模式灵活
    • 便于故障容灾


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部