浅谈Kafka消费模型与集群和广播消费的实现

您所在的位置:网站首页 kafka多个消费者组 浅谈Kafka消费模型与集群和广播消费的实现

浅谈Kafka消费模型与集群和广播消费的实现

2023-08-12 04:53| 来源: 网络整理| 查看: 265

Kafka消费模型

当消费者数量少于分区数量时,一个消费者可能会同时消费多个分区的消息。

当消费者数量多于或者等于分区数量时,一个分区也只能被同一个消费组中的一个消费者消费。也正是因为如此,所以Kafka天然的实现了单个分区内消息消费的顺序性。

当某个topic下消息量激增想要提升消费能力时,首先要判断分区数量是不是小于消费者数量,这种情况只增加消费者实例数量并没有什么效果,因为受限于一个分区只能有一个消费者,所以超出分区数量之外的消费者都是空闲的。

因此调整时需要考虑分区数和消费者实例数量的关系才能有效果。

集群消费

默认情况下Kafka中同一个topic下的消息对于某一个消费组来说是集群消费模式,也就是只会被组内一个消费实例所消费。

广播消费

同一个topic下的消息被多个消费者消费称为广播消费.由于Kafka默认是集群消费模式,所以广播消费的实现方式就是为广播消费的多个应用实例都设置不同的GroupId即每个实例都是单独的消费组.

@KafkaListener注解的GroupId属性支持SpEL表达式,可以通过这个实现每个应用实例都是单独的消费组,进而实现广播消费。

下面表达式指的是取值java.util.UUID这个类的randomUUID方法,当然也可以通过后缀当前机器ip的方式实现动态groupId

@KafkaListener(topics = {"topic"}, properties = {"auto.offset.reset=latest"},


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3