kafka的消费者分区分配策略的客户端和服务端职责如下:
kafka消费者客户端实现具体的分区分配策略,然后把该策略的名称发送给服务端的groupCordinator进行选择,然后把选择好的分区分配策略发送给消费者组中的leader消费者,leader消费者实现具体的分区策略分配逻辑,然后把最终分区分配结果发送给groupCordinator,groupCordinator再把这个结果同步给其他的消费者,过程结束
了解了分区分配策略之后我们再来看一下怎么实现kafka的组内广播功能,首先定义一个自定义的分区分配的类,实现PartitionAssignator接口,实现接口中的方法时关键是要把每个主题的所有分区都分配给对应的消费者,也就是消费组中的每个消费者可以分配到所有的主题分区,这样就可以实现组组内广播的效果,但是这个组内广播最大的问题是如何提交消费偏移,后提交的消费偏移会覆盖之前提交的消费偏移,导致消费者重启的时候会丢失消息或者重复消费大量的消息,所以针对这种情况,客户端自己要管理消费偏移的提交 --注意:我们这里所说的消费者客户端互相覆盖是真实的,在不同客户端提交偏移的时候就会真实发生,但是为什么不同的客户端在不重启的情况下不会有问题呢?原因是因为虽然提交的偏移会覆盖,但是每个客户端每次根据自身偏移量获取消息内容的时候是和客户端本地变量关联的,每个客户端的本地offset变量是一直递增下去的,并且不同客户端之间互不影响,所以问题只发生在消费者客户端重启,本地变量值已经不存在了,此时这个消费者客户端需要从kafka的_offset_偏移主题中获取消费组的偏移量作为这个客户端的起始偏移地址,这样才会开始出问题.

kafka实现组内广播相关推荐

  1. Kafka消费者组内各消费者分区分配

    1.两个基本概念介绍 1.1.GroupCoordinator 1.1.ConsumerCoordinator 2.分区分配的几个阶段 2.1.FIND_COORDINATOR(阶段1) 2.2.JO ...

  2. kafka消费组与重平衡机制详解

    1.消费者组 1.1 介绍 消费者组,即 Consumer Group,应该算是 Kafka 比较有亮点的设计了. 那么何谓 Consumer Group 呢? Consumer Group 是 Ka ...

  3. kafka消费组和分区关系详解

    消费组概念: Consumer Group 是 Kafka 提供的可扩展且有容错性的消费者机制.一个组里面有多个消费者实例,这些消费者共享一个ID,称为Group ID.组内的所有消费者协调在一起来消 ...

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

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

  5. Kafka设计解析(十三)Kafka消费组(consumer group)

    转载自 huxihx,原文链接 Kafka消费组(consumer group) 一直以来都想写一点关于kafka consumer的东西,特别是关于新版consumer的中文资料很少.最近Kafka ...

  6. kafka消费者组消费数据问题

    前言 在上一篇的消费者代码中,里面提到了一个很重要的点,那就是在代码中必须要指明消费者组,为什么要这样呢? 这个跟kafka自身在架构设计时是有一定的关系的,通过之前的学习我们知道,kafka天生就是 ...

  7. kafka | 消费者组到底是什么?

    消费者组,即 Consumer Group,应该算是 Kafka 比较有亮点的设计了.那么何谓 Consumer Group 呢?用一句话概括就是:Consumer Group 是 Kafka 提供的 ...

  8. kafka 消费者组

    每个分区只能由同一个消费者组内的一个 Consumer 实例来消费 Consumer Group 下可以有一个或多个 Consumer 实例.这里的实例可以是一个单独的进程, 也可以是同一进程下的线程 ...

  9. Kafka消费组(consumer group)(转)

    转载自:http://www.cnblogs.com/huxi2b/p/6223228.html 一直以来都想写一点关于kafka consumer的东西,特别是关于新版consumer的中文资料很少 ...

最新文章

  1. 银监会警示担保圈贷款风险 联保贷款变异 防多米诺效应
  2. Extjs:添加查看全部按钮
  3. 运行SSIS包的几种方式
  4. 【PL/SQL】学习笔记 (7)光标的属性,一个会话中打开光标数的限制
  5. [深度学习] 自然语言处理---Transformer 位置编码介绍
  6. 神奇的幻方2015提高组d1t1
  7. 现代化历险记:策略+将COBOL转换为Java的示例
  8. CompletableFuture详解~thenApply
  9. java并发编程入门_探讨一下!Java并发编程基础篇一
  10. 关于CMMI和PMBOK之间的关系和区别比较
  11. Spring : BeanFactoryPostProcessor 子类 BeanDefinitionRegistryPostProcessor
  12. Struts2.0中ActionInvocation使用
  13. linux实用技巧:ubuntu18.04安装配置ibus中文输入法
  14. 会计的思考(37):“弱水三千,只取一瓢饮”--业务人员的财务意识
  15. 手把手接入高德地图API——POI周边搜索功能实现
  16. 科技爱好者周刊:第 72 期
  17. word段落每行首字怎么对齐_如何将emword/em中上下两行文字首字对齐?-word 左右对齐,word同一行不同...
  18. 送走跌宕起伏的2022,迎接拨云睹日的2023
  19. 使用POI创建Excel无法打开
  20. [MSDN版本][32bit/64bit]Windows 2003 R2 With Sp2[中/英][标准/企业/数据中心]

热门文章

  1. 任正非:鸿蒙不用于手机;IBM 340 亿美元红帽收购案完成;Firefox 68.0 发布 | 极客头条...
  2. 不了解这些“高级货”,活该面试当炮灰......
  3. 码农们的聚餐,会复杂到什么程度?
  4. 人工智能都这么火了,底层基础架构还有必要开源吗?
  5. DNS 教父怒喷 DNS-over-HTTPS!
  6. 对比了 18000 个 Python 项目,这 TOP45 值得学习!
  7. 第 3 章 UML 类图
  8. py脚本实现用例执行html报告,pytest文档7-pytest-html生成html报告
  9. idea拦截了html中的静态资源,IDEA配置静态资源热加载操作(Springboot修改静态资源不重启)...
  10. netty权威指南第三版_Hadoop权威指南(第二版及第三版)