kafka的分区分配策略大概可以分为一下几步:
前置条件:
a.假设消费者组到对应的server的GroupCordinator是已知的,这个groupCordinator和消费组对应的_offset_消费主题所在的leader分区在同一个broker上面
b.对于每个消费者服务端都会给一个独一无二的标识:
client_id + uuid标识

1.每个消费者发送joingroup请求到groupCordinator中,这个请求中带着分区策略(比如rangeAssignator和stickyAssignator)
2.服务端的groupCordinator确定这个消费者组使用的分区策略,规则大致是多数原则,也就是得票最多的分区策略作为整个消费组的分区策略
3.服务器的groupCordinator还要确定一个消费者leader,消费者leader的确定非常简单,要么是第一个加入消费者组的消费者要么是随机一个消费者作为消费者leader
4.服务端的groupCordinator会把确定好的分区分配策略发送给所有的消费者,其中发给消费者leader的消息中会包含所有的消费者信息,这样leader消费者就使用这个分区分配策略的具体本地实现类实现具体分区分配逻辑
5.leader消费者把具体的每个消费者对应的消费分区的详细信息发送给groupCordinator,groupCordinator会把这个具体的分配信息同步给所有的消费者

总结:具体的分区分配策略是由消费者客户端实现的,如果要支持其他的比如自定义的分区分配策略,只需要客户端实现并重启消费者实例组即可,kafka服务器无需重启

kafka分区分配策略相关推荐

  1. Kafka分区分配策略(4)——分配的实施

    接上文: 1.[Kafka分区分配策略(1)--RangeAssignor] 2.[Kafka分区分配策略(2)--RoundRobinAssignor和StickyAssignor] 3.[Kafk ...

  2. Kafka分区分配策略(3)——自定义分区分配策略

    接上文: 1.[Kafka分区分配策略(1)--RangeAssignor] 2.[Kafka分区分配策略(2)--RoundRobinAssignor和StickyAssignor] 欢迎支持笔者新 ...

  3. Kafka分区分配策略(2)——RoundRobinAssignor和StickyAssignor

    接上文[Kafka分区分配策略(1)--RangeAssignor] 欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔 ...

  4. 9.Kafka 分区分配策略(Range分配策略 RoundRobin分配策略)

    前言 在 Kafka 实际生产过程中,每个 topic 都会有 多个 partitions.   1.多个Partitions有什么好处? ①多个 partition ,能够对 broker 上的数据 ...

  5. Kafka分区分配策略(Partition Assignment Strategy)

    问题 用过 Kafka 的同学用过都知道,每个 Topic 一般会有很多个 partitions.为了使得我们能够及时消费消息,我们也可能会启动多个 Consumer 去消费,而每个 Consumer ...

  6. Kafka分区分配策略(1)——RangeAssignor

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  7. Kafka分区分配策略以及重平衡过程总结

    Kafka自身提供了三种分区分配策略,通过消费者端配置参数partition.assignment.strategy来控制. 1.RangeAssignor分配策略(kafka默认的分区策略) 通过配 ...

  8. Kafka 原理以及分区分配策略剖析

    欢迎关注方志朋的博客,回复"666"获面试宝典 ‍ ‍一.简介‍ ‍ Apache Kafka 是一个分布式的流处理平台(分布式的基于发布/订阅模式的消息队列[Message Qu ...

  9. kafka partition分配_kafka的分区分配策略

    用过 Kafka 的同学应该都知道,每个 Topic 一般会有很多个 partitions.为了使得我们能够及时消费消息,我们也可能会启动多个 Consumer 去消费,而每个 Consumer 又会 ...

最新文章

  1. Android列表控件选项中添加进度框ProgressBar实现
  2. 【Flutter】StatefulWidget 组件 ( FloatingActionButton 组件 | RefreshIndicator 组件 )
  3. ASP.NET Core MVC/WebAPi如何构建路由?
  4. html 表格_【HTML】3 表格标签
  5. 如何增加儿童产品中的趣味性?
  6. 通信 / HTTP / 什么是 REST 接口
  7. 设计模式之十(外观模式)
  8. 测试驱动开发 测试前移_测试驱动开发:它是什么,什么不是。
  9. 漫步数学分析二十九——幂级数
  10. 转 最小生成树(kruskal 算法 和prim算法)
  11. open() 函数以 w+ 模式打开文件
  12. 首次运行 tensorflow 项目之 vgg 网络
  13. 079 pandas模块
  14. 最懂基金经理的第三方机构猫头鹰,到底是谁?
  15. VM12即VMware Workstation 12 序列号
  16. 微信小程序上传图片到阿里云
  17. Cesium为3dTile模型添加气泡框
  18. 华为服务器如何重新安装系统教程,华为服务器重新安装系统
  19. 如何阻止windows 联网自动激活,避免笔记本无法退货。
  20. Python—Pycharm社区版下载、安装、配置、使用

热门文章

  1. 百年 IBM 如何用代码拯救生命
  2. 京东让员工参观看守所;华为电视面世;苹果市值重回全球第一 | 极客头条
  3. 不止 Java,Oracle 向 JavaScript 开炮!
  4. 普通程序员能实现财务自由吗?
  5. 计算机科学全程,EduGlobalB2B德保罗大学金融计算机科学硕士桥梁STEM全程免GREGMAT...
  6. 学校为什么要单位接收函_为什么要选择语言学校留学?
  7. android布局时长分析,Android性能优化:布局优化 详细解析(含、、讲解 )
  8. docker hub mysql主从_使用 Docker Compose 搭建 MySQL 数据库主从复制实例
  9. tomcat内存占用过高_Tomcat 性能调优之 JVM 调优
  10. 小甲鱼python第六讲_小甲鱼Python第十七讲课后习题(示例代码)