当前位置: 首页 > 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 混合检索多向量
  • 降雪致长白山天池景区关闭,有游客在户外等待一小时,景区回应
  • 香港金紫荆广场举行五四升旗礼
  • 商务部:外贸优品中华行活动采购意向超167亿元
  • 首都航空:太原至三亚航班巡航阶段出现机械故障,已备降南宁机场
  • 华尔兹转岗与鲁比奥集权:特朗普政府人事震荡背后的深层危机
  • 安徽两位新任地级市政府党组书记亮相