当前位置: 首页 > news >正文

Kafka消费者端重平衡流程

     重平衡的完整流程需要消费者 端和协调者组件共同参与才能完成。我们先从消费者的视角来审视一下重平衡的流程。在消费者端,重平衡分为两个步骤:分别是加入组和等待领导者消费者(Leader Consumer)分配方案。这两个步骤分别对应两类特定的请求:JoinGroup 请求和 SyncGroup 请求

    当组内成员加入组时,它会向协调者发送 JoinGroup 请求。在该请求中,每个成员都要将 自己订阅的主题上报,这样协调者就能收集到所有成员的订阅信息。一旦收集了全部成员的 JoinGroup 请求后,协调者会从这些成员中选择一个担任这个消费者组的领导者。

    通常情况下,第一个发送 JoinGroup 请求的成员自动成为领导者。你一定要注意区分这里 的领导者和之前我们介绍的领导者副本,它们不是一个概念。这里的领导者是具体的消费者 实例,它既不是副本,也不是协调者。领导者消费者的任务是收集所有成员的订阅信息,然 后根据这些信息,制定具体的分区消费分配方案。

    选出领导者之后,协调者会把消费者组订阅信息封装进 JoinGroup 请求的响应体中,然后 发给领导者,由领导者统一做出分配方案后,进入到下一步:发送 SyncGroup 请求。

    在这一步中,领导者向协调者发送 SyncGroup 请求,将刚刚做出的分配方案发给协调者。 值得注意的是,其他成员也会向协调者发送 SyncGroup 请求,只不过请求体中并没有实际 的内容。这一步的主要目的是让协调者接收分配方案,然后统一以 SyncGroup 响应的方式 分发给所有成员,这样组内所有成员就都知道自己该消费哪些分区了。

接下来,我用一张图来形象地说明一下 JoinGroup 请求的处理过程。

   就像前面说的,JoinGroup 请求的主要作用是将组成员订阅信息发送给领导者消费者,待 领导者制定好分配方案后,重平衡流程进入到 SyncGroup 请求阶段。

下面这张图描述的是 SyncGroup 请求的处理流程。


推荐阅读

业务幂等性技术架构体系

责任链模式实践-开放银行数据保护及合规

Kafka 中幂等生产者和事务生产者是一回事吗-CSDN博客

相关文章:

  • 《软件设计师》复习笔记(14.2)——统一建模语言UML、事务关系图
  • 遨游科普:三防平板除了三防特性?还能实现什么功能?
  • 工业触摸显示器助力智慧工业实验室发展
  • OpenStack Yoga版安装笔记(22)Swift笔记20250418
  • vue3 Element-plus修改内置样式复现代码
  • (7)VTK C++开发示例 --- 使用交互器
  • Java 2025:解锁未来5大技术趋势,Kotlin融合AI新篇
  • 【dify实战】agent结合deepseek实现基于自然语言的数据库问答、Echarts可视化展示、Excel报表下载
  • 什么是线程安全
  • 软件详细设计说明书模板
  • 《Learning Langchain》阅读笔记3-基于 Gemini 的 Langchain如何从LLMs中获取特定格式
  • 【Mamba】MambaVision论文阅读
  • MCP(Model Context Protocol 模型上下文协议)科普
  • 【数据融合实战手册·实战篇】二维赋能三维的5种高阶玩法:手把手教你用Mapmost打造智慧城市标杆案例
  • STM32F407的引脚说明
  • C++ `shared_ptr` 多线程使用
  • OrangePi 5 Pro vs OrangePi AI Pro 详细对比分析
  • 基于CNN与VGG16的图像识别快速实现指南
  • spring:加载配置类
  • es 混合检索多向量
  • 欧洲央行再次宣布降息:三大关键利率分别下调25个基点
  • 湖北一民房疑因过度采矿塌陷倒塌,镇政府:无伤亡,正在调查
  • 瑞士工业巨头ABB拟分拆机器人业务独立上市,市场份额全球第二
  • 江西南昌:千年银杏树倒伏,全力抢救进行时​
  • 2月美国三大债主均增持美国国债,中国增持235亿美元
  • 国防部:穷兵黩武不会让美国再次伟大