kafka 消费者

消费者

消费者。消费者连接到Kafka上并接收消息,进而进行相应的业务逻辑处理。

消费组

消费者负责订阅Kafka中的主题,并且从订阅的主题上拉取消息。
消费组:每个消费者都有一个对应的消费组,每一个分区只能被一个消费组中的一个消费者所消费。
消费组的三个特性:

  • 消费组可以有一个或多个消费者。
  • Group ID 是一个字符串,在 kafka 集群中标识唯一的一个消费组。
  • Topic 下的某一个分区只能由一个消费组中的某一个消费者消费。

消费者与消费组这种模型可以让整体的消费能力具备横向伸缩性,我们可以增加(或减少)消费者的个数来提高(或降低)整体的消费能力。对于分区数固定的情况,如果消费者过多,出现了消费者的个数大于分区个数的情况,就会有消费者分配不到任何分区。

消费者的个数最多不超过分区数。

在这里插入图片描述

分区再平衡

主动再平衡

在进行主动再均衡期间,所有消费者都会停止读取消息,放弃分区所有权,重新加入消费组,并获得重新分配到的分区。这样会导致整个消费组在一个很短的时间窗口内不可用。这个时间窗口的长短取决于消费组的大小和几个配置参数。
两个阶段:

  1. 所有消费者都放弃分区所有权。
  2. 消费者重新加入群组,获得重新分配到的分区,并继续读取消息。
    在这里插入图片描述
协作再均衡

协作再均衡(也称为增量再均衡)是指将一个消费者的部分分区重新分配给另一个消费者,其他消费者则继续读取没有被重新分配的分区。这种再均衡包含两个或多个阶段。

  1. 消费组leader会通知所有消费者,它们将失去部分分区的所有权,然后消费者会停止读取这些分区,并放弃对它们的所有权。
  2. 消费组leader会将这些没有所有权的分区分配给其他消费者。

虽然这种增量再均衡可能需要进行几次迭代,直到达到稳定状态,但它避免了主动再均衡中出现的“停止世界”停顿。
在这里插入图片描述
消费者会向被指定为群组协调器的broker(不同消费组的协调器可能不同)发送心跳,以此来保持群组成员关系和对分区的所有权关系。心跳是由消费者的一个后台线程发送的,只要消费者能够以正常的时间间隔发送心跳,它就会被认为还“活着”。
如果消费者在足够长的一段时间内没有发送心跳,那么它的会话就将超时,群组协调器会认为它已经“死亡”,进而触发再均衡。
如果一个消费者发生崩溃并停止读取消息,那么群组协调器就会在几秒内收不到心跳,它会认为消费者已经“死亡”,进而触发再均衡。在这几秒时间里,“死掉”的消费者不会读取分区里的消息。在关闭消费者后,协调器会立即触发一次再均衡,尽量降低处理延迟。

相关推荐

  1. kafka消费者

    2024-07-10 02:06:04       48 阅读
  2. kafka设置消费者

    2024-07-10 02:06:04       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 02:06:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 02:06:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 02:06:04       57 阅读
  4. Python语言-面向对象

    2024-07-10 02:06:04       68 阅读

热门阅读

  1. ElasticSearch从入门到精通

    2024-07-10 02:06:04       18 阅读
  2. 重构功能带来的配套改造查找思路

    2024-07-10 02:06:04       21 阅读
  3. Go语言中的闭包函数:强大而灵活的编程工具

    2024-07-10 02:06:04       15 阅读
  4. React基础与核心概念探索

    2024-07-10 02:06:04       24 阅读
  5. 集训day3:并查集

    2024-07-10 02:06:04       22 阅读
  6. LeetCode --- 2103. Rings and Rods 解题报告

    2024-07-10 02:06:04       17 阅读
  7. 重定向(Redirect)和转发(Forward)

    2024-07-10 02:06:04       23 阅读
  8. Git:现代软件开发的基石

    2024-07-10 02:06:04       26 阅读
  9. uni-app-H5页面调用设备摄像头扫描二维码

    2024-07-10 02:06:04       24 阅读
  10. docker

    2024-07-10 02:06:04       19 阅读