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

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 微服务技术系列教程(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集群如何搭建,可以参考我之前写的文章

目录
相关文章
|
4天前
|
Kubernetes 持续交付 开发者
探索后端技术的未来:微服务架构与容器化部署的融合
在数字化时代的浪潮中,后端技术正经历着前所未有的变革。本文将深入探讨微服务架构和容器化部署如何共同推动后端技术的发展,提升应用的性能、可扩展性和可靠性。通过分析现代软件开发的需求,我们将揭示这两种技术如何互补,以及它们在未来后端开发中的潜力和挑战。
|
4天前
|
Kubernetes 搜索推荐 开发者
探索后端开发的未来之路:微服务架构与容器化技术
随着云计算技术的不断成熟和普及,后端开发领域正经历着前所未有的变革。本文将深入探讨微服务架构和容器化技术如何重塑后端开发的面貌,提升系统的可扩展性、灵活性和可靠性。通过分析现代后端系统面临的挑战,我们将展示微服务和容器化如何提供解决方案,并预测这些技术如何塑造后端开发的未来发展。
20 3
|
7天前
|
监控 负载均衡 安全
微服务架构下的服务发现与注册:技术深度解析
【7月更文挑战第20天】服务发现与注册是微服务架构中不可或缺的一部分,它确保了服务间的动态发现和通信。通过选择合适的实现工具和遵循最佳实践,可以构建出高效、可靠、可扩展的微服务系统。随着技术的不断进步,未来我们还将看到更多创新的服务发现与注册解决方案的出现。
|
15天前
|
消息中间件 Java 开发者
Spring Cloud微服务框架:构建高可用、分布式系统的现代架构
Spring Cloud是一个开源的微服务框架,旨在帮助开发者快速构建在分布式系统环境中运行的服务。它提供了一系列工具,用于在分布式系统中配置、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等领域的支持。
59 5
|
14天前
|
Kubernetes 监控 Docker
现代后端开发中的微服务架构与容器化技术
传统的单体应用架构在面对现代大规模应用需求时已显不足,微服务架构及其伴随的容器化技术因其灵活性和可伸缩性成为了主流选择。本文探讨了微服务架构的优势及其与传统架构的对比,详细分析了容器化技术如何支持微服务的部署与管理,以及实际应用中的最佳实践。 【7月更文挑战第13天】
20 2
|
17天前
|
运维 Kubernetes 开发者
现代后端开发中的微服务架构与容器化技术
在当今快速发展的软件开发领域中,微服务架构和容器化技术日益成为开发者关注的焦点。本文将探讨微服务架构的优势、常见的容器化解决方案以及它们如何共同推动后端开发的现代化进程。 【7月更文挑战第9天】
22 5
|
15天前
|
弹性计算 运维 开发者
探索后端技术的未来:微服务与容器化的融合之路
本文旨在探讨后端技术的演进趋势,特别聚焦于微服务架构和容器化技术的融合。文章首先回顾了后端技术的发展简史,随后深入分析微服务架构的优势及其面临的挑战,接着讨论了容器化技术如何为微服务提供支持,并最终展望这两种技术结合后对后端开发的影响。通过具体案例和技术比较,本文旨在提供一个关于后端技术未来方向的全面视角。
|
17天前
|
运维 Kubernetes 开发者
现代后端开发中的微服务架构与容器化技术
本文探讨了现代后端开发中微服务架构与容器化技术的重要性及其应用。微服务架构通过将复杂的应用拆分为独立的服务单元,提升了系统的可扩展性和灵活性。容器化技术(如Docker和Kubernetes)则为微服务的部署与管理提供了高效的解决方案,极大地简化了开发者的工作流程。文章还分析了微服务与容器化技术的优势、挑战以及实际应用场景,旨在帮助开发者更好地理解和应用这些技术,提升软件开发的效率和质量。 【7月更文挑战第9天】
|
19天前
|
消息中间件 监控 Java
使用Kafka实现分布式事件驱动架构
使用Kafka实现分布式事件驱动架构
|
18天前
|
消息中间件 供应链 Java
实现基于Spring Cloud的事件驱动微服务
实现基于Spring Cloud的事件驱动微服务

热门文章

最新文章