微服务技术系列教程(36) - SpringCloud-使用Kafka实现消息驱动

引言

在前面的两篇博客《微服务技术系列教程(34) - SpringCloud-使用RabbitMQ实现消息驱动》《微服务技术系列教程(35) - SpringCloud-消息驱动消费者组的实现》,实现了基于默认的RabbitMQ来实现消息驱动,同时实现了消费者轮询分发的功能。

现在有个问题?如果现在不想使用RabbitMQ了,想切换至Kakfa,那么该如何实现呢?

其实切换相当简单,基于《微服务技术系列教程(34) - SpringCloud-使用RabbitMQ实现消息驱动》的环境,本文来讲解。

代码实现

其实只需要添加Maven依赖和修改生产者与消费者的application.yml配置文件,就可以实现RabbitMQ与Kafka的平滑切换了

1.在前面博客的基础上,添加maven依赖:

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-stream-kafka</artifactId>
	<version>2.0.1.RELEASE</version>
</dependency>

2.生产者添加配置:

server:
  port: 9001
spring:
  cloud:
    stream:
      # 设置成使用kafka
      kafka:
        binder:
          # Kafka的服务端列表,默认localhost
          brokers: 192.168.162.131:9092,192.168.162.132:9092,192.168.162.133:9092
          # Kafka服务端连接的ZooKeeper节点列表,默认localhost
          zkNodes: 192.168.162.131:2181,192.168.162.131:2181,192.168.162.131:2181
          minPartitionCount: 1
          autoCreateTopics: true
          autoAddPartitions: true

3.消费者添加配置:

server:
  port: 9002
spring:
  application:
    name: spingcloud-stream-consumer
  cloud:
     instance-count: 1
     instance-index: 0
     stream:
        kafka:
          binder:
            brokers: 192.168.162.131:9092,192.168.162.132:9092,192.168.162.133:9092
         	 # Kafka服务端连接的ZooKeeper节点列表,默认localhost
         	zkNodes: 192.168.162.131:2181,192.168.162.131:2181,192.168.162.131:2181
            auto-add-partitions: true
            auto-create-topics: true
            min-partition-count: 1
        bindings:
          input:
            destination: my_msg
            group: s1
            consumer:
              autoCommitOffset: false
              concurrency: 1
              partitioned: false

4.启动Zookeeper+Kafka集群

5.生产者生产消息,浏览器输入:http://localhost:9001/sendMsg,可以看到消费者能消费到消息:
在这里插入图片描述

附:如果不知道Kafka集群如何搭建,可以参考我之前写的文章

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值