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

Kafka消费者端重平衡流程

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

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

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

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

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

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

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

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


推荐阅读

业务幂等性技术架构体系

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

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

http://www.xdnf.cn/news/8281.html

相关文章:

  • 中间件--ClickHouse-9--MPP架构(分布式计算架构)
  • kafka菜鸟教程
  • GEE学习笔记 29:基于GEE的多源Landsat合成与植被指数时序提取
  • axios 模拟实现
  • 【HFP】蓝牙HFP协议音频连接核心技术深度解析
  • 【2】CICD持续集成-k8s集群中安装Jenkins
  • 8.观察者模式:思考与解读
  • 【SAP ME 44】在 HANA DB中报废SFC时的SHOP_ORDER表记录锁定
  • 设计模式从入门到精通之(五)观察者模式
  • LIB-ZC, 一个跨平台(Linux)平台通用C/C++扩展库, stream 流操作
  • conversation_template | conversation_actors | conversation_line_template
  • 网安加·百家讲坛 | 刘志诚:AI安全风险与未来展望
  • MCP的推出将给未来的开发带来哪些变革?
  • 解决jupyter notebook修改路径下没有c.NotebookApp.notebook_dir【建议收藏】
  • 第五章 SQLite数据库:4、SQLite 进阶用法:常见的约束、PRAGMA 配置、数据操作
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(二级)真题
  • 《软件设计师》复习笔记(4.2)——关系代数、函数依赖、范式
  • 下载HBuilder X,使用uniapp编写微信小程序
  • Linux简介
  • 下拉框select标签类型
  • PLOS ONE:VR 游戏扫描揭示了 ADHD 儿童独特的大脑活动
  • 基础数学知识-概率论
  • 机器学习05-CNN
  • 守护进程及gdb调试(新手简略版)
  • 工作总结(十二)——迁移svn单项目到gitlab上,保留历史提交记录
  • 02.Spring_IOC详解
  • Evidential Deep Learning和证据理论教材的区别(主要是概念)
  • test ssl java
  • 【C++指南】哈希驱动的封装:如何让unordered_map/set飞得更快更稳?【上】
  • 数据结构学习笔记 :二叉搜索树与高效查找算法详解