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.mzph.cn/news/212203.shtml

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

相关文章

大师学SwiftUI第18章Part2 - 存储图片和自定义相机

存储图片 在前面的示例中,我们在屏幕上展示了图片,但也可以将其存储到文件或数据库中。另外有时使用相机将照片存储到设备的相册薄里会很有用,这样可供其它应用访问。UIKit框架提供了如下两个保存图片和视频的函数。 UIImageWriteToSavedPh…

JAVA后端自学技能实操合集

JAVA后端自学技能实操 内容将会持续更新中,有需要添加什么内容可以再评论区留言,大家一起学习FastDFS使用docker安装FastDFS(linux)集成到springboot项目中 内容将会持续更新中,有需要添加什么内容可以再评论区留言,大家一起学习 FastDFS 组名:文件上传后所在的 st…

leetcode 100.相同的树

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

GPIO的使用--滴答定时器--pir人体红外传感器

目录 一、滴答定时器的使用与原理 1、定义 2、原理 (1)向上计数​编辑 (2)向下计数 (3) 代码流程 a、配置滴答时钟唤醒频率 b、滴答时钟中断函数 (4)结果 3、优化-->寄存…

Proxy Hook Trace JSON

Proxy var window {key: "qww",age: 22 } window new Proxy(window, {get(target, p, receiver) {console.log("target: ", target);console.log("p: ", p);// return window[username];/// 这里如果这样写. 有递归风险的...// return Reflec…

【线性代数与矩阵论】Jordan型矩阵

Jordan型矩阵 2023年11月3日 #algebra 文章目录 Jordan型矩阵1. 代数重数与几何重数2. Jordan块与Jordan标准型2.1 最小多项式与Jordan标准型2.2 两类重要矩阵 3. 矩阵的Jordan分解3.1 Jordan分解的应用 下链 1. 代数重数与几何重数 在对向量做线性变换时,向量空间…

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

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

如何主持一场知识竞赛抢答赛

知识竞赛主持说难不难,说简单也不简单,我就从易到难介绍一下。 入门级,题主不用练习太多其他花哨的技巧,只要注意一点,熟悉比赛流程。知识竞赛需要给所有选手一个公平流畅的答题环境,所以题主自身必须非常…

干货!接口中的大事务,该如何进行优化?

作为后端开发的程序员,我们常常会的一些相对比较复杂的逻辑,比如我们需要给前端写一个调用的接口,这个接口需要进行相对比较复杂的业务逻辑操作,比如会进行,查询、远程接口或本地接口调用、更新、插入、计算等一些逻辑…

掌握iText:轻松处理PDF文档-进阶篇

简体中文写入 iText本身对简体中文的支持有限,但可以通过引入额外的字体包来增强其对简体中文的支持。例如,可以使用iTextAsian.jar这个亚洲字体包,它包含了几种简单的亚洲字体,其中包括简体中文字体。只需要将iTextAsian.jar放到…

springboot 启动之后报错:Unsatisfied dependency through field ‘bbbClient’

springboot 启动之后报错:UnsatisfiedDepencyException:Error creating bean with name ‘aaaServiceImpl’: Unsatisfied dependency through field ‘bbbClient’。 这两天一直在进行着日常 debugger 查看代码。可是发生了一个挺“灵异”的事件。那就是我看的项目…

46. 全排列

46. 全排列 原题链接:完成情况:解题思路:参考代码:_46全排列_构建数组回溯_46全排列_直接构建 错误经验吸取 原题链接: 46. 全排列 https://leetcode.cn/problems/permutations/description/ 完成情况:…

codeforces D.In Love

思路 用两个 m u l t i s e t multiset multiset 分别存 l , r l,r l,r 。你也可以写平衡树在 l l l 的 m u l t i s e t multiset multiset 里去查询是否存在比最小的 r r r 大的 l l l 。 Think Twice, Code Once #include<bits/stdc.h> #define il inline #d…

小模型学习(1)-人脸识别

【写作背景】因为最近一直在研究大模型&#xff0c;在与客户进行交流时&#xff0c;如果要将大模型的变革性能力讲清楚&#xff0c;就一定要能将AI小模型的一些原理和效果讲清楚&#xff0c;进而形成对比。当然这不是一件简单的事情&#xff0c;一方面大模型分析问题的的本质原…

Mybatis分页插件PageHelper

PageHelper是什么&#xff1f; 是MyBatis提供的分页插件&#xff0c;可以支持MySQL、Oracle等六种数据库。 集成方式如下&#xff1a; 1 引入依赖 <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --> <dependency><groupId>co…

反射加载SDK完成统一调用

文章目录 1、需求背景2、接口抽象类具体实现类3、疑问4、存在的问题5、通过反射加载SDK并完成调用5、补充&#xff1a;关于业务网关7、补充&#xff1a;关于SDK的开发 关键点&#xff1a; 接口抽象类&#xff08;半抽象半实现&#xff09;具体实现类业务网关反射加载SDK&#…

JAVA如何调用python

以下代码想通过测试&#xff0c;必须有一个前提&#xff1a;电脑上安装了Python环境。不太习惯说废话&#xff0c;直接上代码了。 以下是用于测试的python代码&#xff08;mytest.py&#xff09;&#xff1a; # 因为用户到了参数处理&#xff0c;所以需要引用 import argpars…

Java学习手册——第五篇数据类型

数据类型&#xff1a;是数据化的基石&#xff0c;如果没有数据类型怎么表示呢&#xff1f;比如年龄可以用整数&#xff1a;18岁。如果有更好的表示方式大家可以留言哟~ 在举个例子就是姓名&#xff0c;我们需要用字符串的形式来表示。这就是数据类型的魅力&#xff0c;而又有同…

TS基础语法

前言&#xff1a; 因为在写前端的时候&#xff0c;发现很多UI组件的语法都已经开始使用TS语法&#xff0c;不学习TS根本看不到懂&#xff0c;所以简单的学一下TS语法。为了看UI组件的简单代码&#xff0c;不至于一脸懵。 一、安装node 对于windows来讲&#xff0c;node版本高…

电脑出现这些现象,说明你的固态硬盘要坏了

与传统机械硬盘&#xff08;HDD&#xff09;相比&#xff0c;固态硬盘&#xff08;SSD&#xff09;速度更快、更稳定、功耗更低。但固态硬盘并不是完美无瑕的&#xff0c;由于颗粒写入机制&#xff0c;可能会在七到十年的预期寿命之前出现故障。所以用户最好为最终故障做好准备…