消费组概念:
Consumer Group 是 Kafka 提供的可扩展且有容错性的消费者机制。一个组里面有多个消费者实例,这些消费者共享一个ID,称为Group ID。组内的所有消费者协调在一起来消费订阅主题(Subscribed Topics)的所有分区(Partition)
下面通过图来解释分组和分区的关系
假设某个主题,共有4各分区P0,P1,P2,P3,有两个消费组,消费组A共4各消费者:A0,A1,A2,A3, 消费组B共有2个分组:B0,B1
具体分配图如下

1、每个分区只能被一个消费组中的一个消费者所消费,
2、消费组中一个消费者可以消费多个分区。
3、多个消费组,每个消费组都可以消费topic中的所有数据,且消费位移之间互不影响。
4、一个消费组存在的消费者个数,大于分区数时,会出现消费组,未被分配到分区(如下图所示)。

消费位移简述。
Kafka 有新旧Consumer API 之分,老版本的 Consumer Group 把位移保存在 ZooKeeper 中,将位移保存在 ZooKeeper 外部系统的做法,最显而易见的好处就是减少了 Kafka Broker 端的状态保存开销,将服务器节点做成无状态的好处是可以自由地扩缩容,实现超强的伸缩性
kafka巨额吞吐量,会带来频繁读写,消费位移保存在zk中,会大量消耗集群性能,所以0.9版本后将消费位移保存到broker上的一个内部主题__consumer_offsets

保存在broker的优点:
满足频繁写入
可以持久化保存

新版本 Consumer 的位移管理机制其实就是将 Consumer 的位移数据作为一条条普通的 Kafka 消息,提交到 __consumer_offsets 中。位移主题就是普通的 Kafka 主题,可以手动地创建它、修改它,甚至是删除它。

位移主题有特定的消息格式,不可以随便向该主题发送消息

位移主题的key:<Group ID,主题名,分区名>
value保存的是具体的位移数值和相关元数据
其它两种格式:

用于保存Consumer Group信息的消息(不常见)
用于删除Group过期位移甚至删除group的消息,消息体是 null
Kafka集群中第一consumer启动时会创建位移主题,默认是分区50,副本数是3,也可以选择手动创建位移主题 ,但是最好不要修改这个默认值

kafka消费组和分区关系详解相关推荐

  1. Windows server 2003域下全局组、本地域组及通用组之间的关系详解

    WINDOWS SERVER 2003 组的简介: 定义: 组(Group)是用户帐号的集合. 作用: 通过向一组用户分配权限从而不必向每个用户分配权限,简化管理.就是为用户和嵌套在里面的组等单元提供 ...

  2. 跟我学Kafka:Kafka消费组运维详解

    作为一个Kafka初学者,需要快速成长,承担维护公司Kafka的重任,对Kafka的学习,我按照三步走策略: 阅读Kafka相关书籍 从运维实战的角度学习Kafka 阅读源码,体系化,精细化掌握其实现 ...

  3. 怎么理解 Kafka 消费者与消费组之间的关系?

    与生产者对应的是消费者,应用程序可以通过 KafkaConsumer 来订阅主题,并从订阅的主题中拉取消息.不过在使用 KafkaConsumer 消费消息之前需要先了解消费者和消费组的概念,否则无法 ...

  4. 怎么理解Kafka消费者与消费组之间的关系?

    与生产者对应的是消费者,应用程序可以通过 KafkaConsumer 来订阅主题,并从订阅的主题中拉取消息.不过在使用 KafkaConsumer 消费消息之前需要先了解消费者和消费组的概念,否则无法 ...

  5. 2017年 第08届 蓝桥杯 Java B组 决赛真题详解及小结

    ​​​​​蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 ...

  6. 2018年 第09届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  7. 动态路由协议的分类、动静态路由优缺点、RIP简介、组播单播广播详解(附图)

    目录 一.动态路由协议的分类 (1)按照工作区域范围: (2)按照路由算法: RIP相关知识简介: 二.静态路由优缺点: 三. 动态路由优缺点: 四.单播.组播.广播详解: 一.动态路由协议的分类 ( ...

  8. MS SQL Server:分区表、分区索引详解

    MS SQL Server:分区表.分区索引 详解 1. 分区表简介 使用分区表的主要目的,是为了改善大型表以及具有各种访问模式的表的可伸缩性和可管理性.  大型表:数据量巨大的表.  访问模式: ...

  9. 关系型数据库表之间的联系[关系]详解

    关系型数据库表之间的联系[关系]详解 在表中,行和列的逻辑顺序无关紧要.每个表至少包含一列,该列被称为主键,它唯一地标识了表中的每一行. 键是表中扮演特殊角色的列,有两种键:主键.外键. 主键(Pri ...

最新文章

  1. java 数组 反射_java数组的反射
  2. python 第一课
  3. ButterKnife Zelezny导入不成功遇到的问题
  4. [网络安全自学篇] 六十五.Vulnhub靶机渗透之环境搭建及JIS-CTF入门和蚁剑提权示例(一)
  5. linux符号命令,Linux_几个符号命令(示例代码)
  6. MYSQL AB复制原理
  7. 一本通网站 1378:最短路径(shopth)
  8. tornado websocket
  9. javaweb day14
  10. 安装VS2008(转)
  11. 蓝桥杯2019B组 C++
  12. git的使用、ssh生成、github、Git分支操作
  13. mysql mgr recovering_深度理解MySQL Group Replication的RECOVERING状态
  14. spring boot+vue前后端分离项目问题总结
  15. 报错解决:AttributeError: ‘Word2VecKeyedVectors‘ object has no attribute ‘save_Word2Vec_format‘
  16. [转] Photoshop教程8000例,还能学不会吗?
  17. js把日期字符串转换成时间戳 阿星小栈
  18. 风格迁移1-00:Liquid Warping GAN(Impersonator)-目录-史上最新无死角讲解
  19. MPB:南农韦中组-植物根际土壤样品的非破坏性连续采集
  20. Java基于网易云信实现手机短信验证

热门文章

  1. 机器学习案例:验证码识别(Captcha)
  2. 人保爱无忧易核版重疾险怎么样?好不好?
  3. 逊哥dp专题 总结(普通dp,斜率优化dp,数位dp)
  4. 照片放大工具Topaz Gigapixel AI for Mac
  5. 算法图解之狄克斯特拉算法实现
  6. vue脚手架 编译速度慢95% emitting CopyPlugin
  7. 16秋南开计算机应用答案,南开16秋学期《计算机应用基础》在线作业.doc
  8. 暨南大学21考研计算机上岸吐槽贴经验贴流水账
  9. 非均匀三次B样条曲线插值实现及MATLAB代码
  10. uml的用例图中扩展关系与包含关系