kafka入门(四):消费者

消费者 (Consumer )

消费者 订阅 Kafka 中的主题 (Topic) ,并 拉取消息。

消费者群组( Consumer Group)

每一个消费者都有一个对应的 消费者群组。
一个群组里的消费者订阅的是同一个主题,每个消费者接收主题的一部分分区的消息。
每一个分区 (Partition),只能被一个消费组中的一个消费者消费。

伸缩性

往群组里增加消费者是横向伸缩消费能力的主要方式。
注意:不要让消费者的数量超过主题分区的数量,多余的消费者只会闲置。

消费者与分区

假设主题T1有4个分区,我们创建了消费者C1,它是群组G1里唯一的消费者,我们用它订阅主题T1。消费者C1将收到主题T1全部4个分区的消息,如图4-1所示。
请添加图片描述
如果往群组G1新增多几个消费者,直到有4个消费者,那么每个消费者可以分配到一个分区,如图4-3所示。

请添加图片描述
如果我们往群组里添加更多的消费者,超过主题的分区数量,那么有一部分消费者就会被闲置,不会接收到任何消息,如图4-4所示。

请添加图片描述
可以为每一个需要获取一个或多个主题全部消息的应用程序创建一个消费者群组,然后往群组里添加消费者来伸缩读取能力和处理能力,群组里的每个消费者只处理一部分消息。

请添加图片描述

消费者群组与分区再均衡

分区的所有权从一个消费者转移到另一个消费者,这样的行为被称为再均衡.
再均衡为消费者群组带来了高可用性和伸缩性.
在再均衡期间,消费者无法读取消息,造成整个群组一小段时间的不可用。

何时会触发再均衡

  • 有新的消费者加入消费组
  • 有消费者宕机下线
  • 有消费者主动退出消费组
  • 消费组对应的 组协调器(GroupCoorinator)节点发生变更。
  • 消费组内所订阅的任一主题或者主题的分区数量发生变化。

组协调器(GroupCoorinator)

GroupCoorinator 是 kafka 服务端中用于管理消费组的组件。

消费者协调器 (ConsumerCoordinator)

负责与 组协调器 进行交互。
组协调器 和 消费者协调器 的职责就是负责执行消费者再均衡的操作。

参考资料:

《深入理解kafka:核心设计与实践原理》
《Kafka权威指南》

相关推荐

  1. kafka消费者

    2023-12-11 02:06:04       33 阅读
  2. kafka入门():kafka生产者发送消息

    2023-12-11 02:06:04       38 阅读
  3. Flink入门之DataStream API及kafka消费者

    2023-12-11 02:06:04       37 阅读
  4. kafka入门(三):kafka多线程消费

    2023-12-11 02:06:04       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-11 02:06:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-11 02:06:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-11 02:06:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-11 02:06:04       20 阅读

热门阅读

  1. 挖漏洞之文件上传

    2023-12-11 02:06:04       36 阅读
  2. Linux C语言 41-进程间通信IPC之共享内存

    2023-12-11 02:06:04       37 阅读
  3. Linux-实现没有血缘关系的进程之间的通信

    2023-12-11 02:06:04       35 阅读
  4. 【力扣】160.相交链表

    2023-12-11 02:06:04       38 阅读
  5. 关于 UbuntuServer 的一些配置

    2023-12-11 02:06:04       32 阅读
  6. SpringBootAdmin设置邮件通知

    2023-12-11 02:06:04       34 阅读
  7. 顺序表的应用

    2023-12-11 02:06:04       37 阅读
  8. 力扣119双周赛

    2023-12-11 02:06:04       40 阅读
  9. 力扣面试150题 | 轮转数组

    2023-12-11 02:06:04       45 阅读
  10. 智能化缺陷检测系统的发展趋势

    2023-12-11 02:06:04       47 阅读
  11. Android 13 - Media框架(22)- ACodecBufferChannel

    2023-12-11 02:06:04       25 阅读
  12. LeetCode 2048. 下一个更大的数值平衡数

    2023-12-11 02:06:04       42 阅读