SpringCloudStream消息驱动kafka消费分组

在实际业务场景中,每一个微服务应用都会集群部署,这样消息会被重复消费。Spring Cloud Stream 中提供了消费组来解决这个问题,通过配置 spring.cloud.stream.bindings.《通道名称》.group 属性为应用指定一个组名实现。配置如下:

生产者配置:

server: 
   port: 9000
spring: 
   application: 
      name: springcloud-stream-producer
   cloud: 
      stream: 
         kafka: 
            binder: 
               ##kafka集群列表
               brokers: 192.168.153.129:9092,192.168.153.130:9092,192.168.153.131:9092
               #kafka服务端连接的ZooKeeper集群列表
               zkNodes: 192.168.153.129:2181,192.168.153.130:2181,192.168.153.131:2181
               minPartitionCount: 1
               autoCreateTopics: true
               autoAddPartitions: true

         bindings: 
            my_msg: #通道名称
               destination: my_topic

消费者配置:

server:
   port: 8001
spring: 
   application: 
      name: springcloud-stream-consumer
   cloud: 
      instance-count: 1
      instance-index: 0
      stream: 
         kafka: 
            binder: 
               brokers: 192.168.153.129:9092,192.168.153.130:9092,192.168.153.131:9092
               zk-nodes: 192.168.153.129:2181,192.168.153.130:2181,192.168.153.131:2181
               auto-add-partitions: true
               auto-create-topics: true

               min-partition-count: 1
         bindings:
            my_msg: 
               destination: my_topic
               group: group_name_001 #分组名称

         #当前消费者的总实例数量,不指定多个消费者启动后默认最后启动的服务作为唯一消息消费者,其他消费者对消息不做处理
         instanceCount: 3

通过以上配置后,多个消费者进行轮询消费,每次只有一个消费者消费消息,不会重复消费

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值