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权威指南》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/263780.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Minio保姆级教程

转载自:www.javaman.cn Minio服务器搭建和整合 1、centos安装minio 1.1、创建安装目录 mkdir -p /home/minio1.2、在线下载minio #进入目录 cd /home/minio #下载 wget https://dl.minio.io/server/minio/release/linux-amd64/minio1.3、minio配置 1.3.1、添加…

Shell数组函数:函数

一、概述 概念: 函数是一段完成特定功能的代码片段(块)在shell中定义了函数,就可以使代码模块化,使于复用代码注意函数必须先定义才可以使用。 重点: 传参 $1,$2局部变量 local返回值 return 即$? 二、定…

AWS攻略——Peering连接VPC

文章目录 创建IP/CIDR不覆盖的VPC创建VPC创建子网创建密钥对创建EC2 创建Peering接受Peering邀请修改各个VPC的路由表修改美东us-east-1 pulic subnet的路由修改悉尼ap-southeast-2路由 测试知识点 我们回顾下《AWS攻略——VPC初识》中的知识: 一个VPC只能设置在一…

linux7安装python3.12.1教程

1.下载tar.gz包 地址:Python Release Python 3.12.1 | Python.org 2.上传包到linux服并解压 cd /home/local/ ll tar -zxvf Python-3.12.1.tgz 3.安装编译python所需环境 yum install -y gcc yum install -y zlib* yum -y install zlib-devel bzip2-devel opens…

读书笔记-《数据结构与算法》-摘要4[插入排序]

插入排序 核心:通过构建有序序列,对于未排序序列,在已排序序列中从后向前扫描(对于单向链表则只能从前往后遍历),找到相应位置并插入。实现上通常使用in-place排序(需用到O(1)的额外空间) 从第一个元素开始,该元素可…

【Unity动画】Avatar Mask

创建 Avatar Mask可以设置那一部分骨骼运动和不运动 然后放在状态机里面的层中来混合 【后续完善】

leetcode 100.相同的树

涉及到递归,最好多画图理解,希望对你们有帮助 100.相同的树 题目 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 题目链接…

NAND闪存价格暴涨:512GB芯片翻倍,256GB涨幅达55%

此前,根据Trendforce的信息,今年第四季度NAND的合约价预计上涨8-13%,其中Wafer上涨13-18%。 根据DRAMeXchange最新的数据表明,之前预测的数据还是太保守了,过去一年Wafer NAND价格如下图: DRAM/NAND价格近几…

c语言一维数组总结详解

目录 介绍: 一维整型数组: 声明: 初始化: 打印输出: 输出结果: 浮点型数组: 代码: 运行结果: 补充: 一维字符数组: 字符数组声明及初始…

TCP数据粘包的处理

TCP数据粘包的处理 背锅侠TCP解决方案2.1 发送端2.2 接收端 背锅侠TCP 在前面介绍套接字通信的时候说到了TCP是传输层协议,它是一个面向连接的、安全的、流式传输协议。因为数据的传输是基于流的所以发送端和接收端每次处理的数据的量,处理数据的频率可…

倪海厦:教你正确煮中药,发挥最大药效

同样的一个汤剂,我开给你,你如果煮的方法不对,吃下去效果就没那么好。 所以,汤,取它的迅捷,速度很快,煮汤的时候还有技巧,你喝汤料的时候,你到底是喝它的气,…

如何用Qt配置git项目并上传Gitee

1.进入到Qt项目文件夹内,打开 “Git Bash Here” 2.初始化,在“Git Bash Here”中输入 git init 3.加入所有文件,在“Git Bash Here”中输入 git add . (需要注意,git add 后面还有一个点) 4.添加备注,git com…