Kafka学习笔记 -- 读取数据

栏目: 后端 · 发布时间: 5年前

内容简介:消费者从属于消费者群组。一个群组里的消费者

消费者从属于消费者群组。一个群组里的消费者 订阅的是同一个主题每个消费者接收主题一部分分区的消息

消费者横向扩展

1个消费者

  1. 主题T1有4个分区,然后创建消费者C1,C1是消费者群组G1里唯一的消费者,C1订阅T1
  2. 消费者C1将接收主题T1的全部4个分区的消息

Kafka学习笔记 -- 读取数据

2个消费者

  1. 如果群组G1新增一个消费者C2,那么每个消费者将 分别从两个分区接收消息
  2. 假设C1接收分区0和分区2的消息,C2接收分区1和分区3的消息

Kafka学习笔记 -- 读取数据

4个消费者

  1. 如果群组G1有4个消费者,那么每个消费者可以分配到一个分区

Kafka学习笔记 -- 读取数据

5个消费者

  1. 如果群组G1有5个消费者, 超过主题的分区数量 ,那么有1个消费者就会被 闲置 ,不会接收到任何消息

Kafka学习笔记 -- 读取数据

总结

  1. 往群组里增加消费者是 横向伸缩消费能力 的主要方式
  2. 消费者经常会做一些高延迟的操作,比如把数据写到数据库或HDFS,或者使用数据进行比较耗时的计算
  3. 有必要 为主题创建大量的分区 ,在负载增长时可以加入更多的消费者
    • 不要让 消费者的数量超过主题分区的数量 ,多余的消费者只会被 闲置

消费者群组横向扩展

  1. Kafka设计的主要目标之一,就是要让Kafka主题里的数据能够满足企业各种应用场景( 不同的消费者群组 )的需求
  2. 在这些场景里,每个应用程序可以获取到 所有的消息 ,而不只是其中的一部分
  3. 只要保证每个应用程序有自己的消费者群组,就可以让它们获取到主题所有的消息
  4. 不同于传统的消息系统, 横向伸缩Kafka消费者和消费者群组并不会对性能造成负面影响

Kafka学习笔记 -- 读取数据

消费者群组+分区再均衡

分区再均衡

  1. 分区再均衡: 分区的所有权从一个消费者转移到另一个消费者
  2. 分区再均衡非常重要,它为消费者群组带来了 高可用性伸缩性 (可以放心地添加或移出消费者)
  3. 在分区再均衡期间, 消费者无法读取消息 ,造成整个群组一小段时间内不可用
  4. 当分区被重新分配给另一个消费者时,消费者当前的读取状态会丢失,它有可能需要去刷新缓存,在它重新恢复状态之前会拖慢应用程序

心跳

  1. 消费者通过向被指派为 群组协调器 的Broker( 不同的群组可以有不同的协调器 )发送 心跳 来维持它们 和群组的从属关系 以及它们 对分区的所有权关系
  2. 只要消费者以 正常的时间间隔 发送心跳,就被认为是 活跃 的,说明它还在读取分区里的消息
  3. 消费者发送心跳的时机
    • 轮询消息 (为了获取消息)
    • 提交偏移量
  4. 如果消费者停止发送心跳的时间足够长,会话就会过期,群组协调器认为它已经死亡,就会触发一次再均衡
  5. 如果一个消费者发生崩溃,并停止读取消息,群组协调器会等待几秒钟,确认它死亡了才会触发再均衡
    • 在这几秒的时间内,死掉的消费者不会读取分区里的消息
  6. 在清理消费者时,消费者会 通知 协调器它将要离开群组,协调器会 立即 触发一次再均衡,尽量 降低处理停顿

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据结构、算法与应用

数据结构、算法与应用

(美)Sartaj Sahni / 汪诗林、孙晓东、等 / 机械工业出版社 / 2000-01 / 49.00

本书是关于计算机科学与工程领域的基础性研究科目之一――数据结构与算法的专著。 本书在简要回顾了基本的C++ 程序设计概念的基础上,全面系统地介绍了队列、堆栈、树、图等基本数据结构,以及贪婪算法、分而治之算法、分枝定界算法等多种算法设计方法,为数据结构与算法的继续学习和研究奠定了一个坚实的基础。更为可贵的是,本书不仅仅介绍了理论知识,还提供了50多个应用实例及600多道练习题。 本书......一起来看看 《数据结构、算法与应用》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码