微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ集成

简介: 本文介绍了在 Spring Boot 中集成 ActiveMQ 的详细步骤。首先通过引入 `spring-boot-starter-activemq` 依赖并配置 `application.yml` 文件实现基本设置。接着,创建 Queue 和 Topic 消息类型,分别使用 `ActiveMQQueue` 和 `ActiveMQTopic` 类完成配置。随后,利用 `JmsMessagingTemplate` 实现消息发送功能,并通过 Controller 和监听器实现点对点消息的生产和消费。最后,通过浏览器访问测试接口验证消息传递的成功性。

3. ActiveMQ集成

3.1 依赖导入和配置

在 Spring Boot 中集成 ActiveMQ 需要导入如下 starter 依赖:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-activemq</artifactId>

</dependency>

然后在 application.yml 配置文件中,对 activemq 做一下配置:

spring:

 activemq:

  # activemq url

   broker-url: tcp://localhost:61616

   in-memory: true

   pool:

     # 如果此处设置为true,需要添加activemq-pool的依赖包,否则会自动配置失败,无法注入JmsMessagingTemplate

     enabled: false

3.2 Queue 和 Topic 的创建

首先我们需要创建两种消息 Queue 和 Topic,这两种消息的创建,我们放到 ActiveMqConfig 中来创建,如下:

/**

* activemq的配置

* @author  shengwu ni

*/

@Configuration

public class ActiveMqConfig {

  /**

   * 发布/订阅模式队列名称

   */

  public static final String TOPIC_NAME = "activemq.topic";

  /**

   * 点对点模式队列名称

   */

  public static final String QUEUE_NAME = "activemq.queue";

  @Bean

  public Destination topic() {

      return new ActiveMQTopic(TOPIC_NAME);

   }

  @Bean

  public Destination queue() {

      return new ActiveMQQueue(QUEUE_NAME);

   }

}

可以看出创建 Queue 和 Topic 两种消息,分别使用 new ActiveMQQueuenew ActiveMQTopic 来创建,分别跟上对应消息的名称即可。这样在其他地方就可以直接将这两种消息作为组件注入进来了。

3.3 消息的发送接口

在 Spring Boot 中,我们只要注入 JmsMessagingTemplate 模板即可快速发送消息,如下:

/**

* 消息发送者

* @author shengwu ni

*/

@Service

public class MsgProducer {

  @Resource

  private JmsMessagingTemplate jmsMessagingTemplate;

  public void sendMessage(Destination destination, String msg) {

      jmsMessagingTemplate.convertAndSend(destination, msg);

   }

}

convertAndSend 方法中第一个参数是消息发送的目的地,第二个参数是具体的消息内容。

3.4 点对点消息生产与消费

3.4.1 点对点消息的生产

消息的生产,我们放到 Controller 中来做,由于上面已经生成了 Queue 消息的组件,所以在 Controller 中我们直接注入进来即可。然后调用上文的消息发送方法 sendMessage 即可成功生产一条消息。

/**

* ActiveMQ controller

* @author shengwu ni

*/

@RestController

@RequestMapping("/activemq")

public class ActiveMqController {


   private static final Logger logger = LoggerFactory.getLogger(ActiveMqController.class);


   @Resource

   private MsgProducer producer;

   @Resource

   private Destination queue;


   @GetMapping("/send/queue")

   public String sendQueueMessage() {


       logger.info("===开始发送点对点消息===");

       producer.sendMessage(queue, "Queue: hello activemq!");

       return "success";

   }

}

3.4.2 点对点消息的消费

点对点消息的消费很简单,只要我们指定目的地即可,jms 监听器一直在监听是否有消息过来,如果有,则消费。

/**

* 消息消费者

* @author shengwu ni

*/

@Service

public class QueueConsumer {


   /**

    * 接收点对点消息

    * @param msg

    */

   @JmsListener(destination = ActiveMqConfig.QUEUE_NAME)

   public void receiveQueueMsg(String msg) {

       System.out.println("收到的消息为:" + msg);

   }

}

可以看出,使用 @JmsListener 注解来指定要监听的目的地,在消息接收方法内部,我们可以根据具体的业务需求做相应的逻辑处理即可。

3.4.3 测试一下

启动项目,在浏览器中输入:http://localhost:8081/activemq/send/queue,观察控制台的输出日志,出现下面的日志说明消息发送和消费成功。

收到的消息为:Queue: hello activemq!

目录
相关文章
|
21天前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
29天前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
259 2
|
1月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
Spring Boot 3.x 微服务架构实战指南
|
2月前
|
监控 Java 数据库
从零学 Dropwizard:手把手搭轻量 Java 微服务,告别 Spring 臃肿
Dropwizard 整合 Jetty、Jersey 等成熟组件,开箱即用,无需复杂配置。轻量高效,启动快,资源占用少,内置监控、健康检查与安全防护,搭配 Docker 部署便捷,是构建生产级 Java 微服务的极简利器。
203 2
|
2月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
1252 1
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
|
2月前
|
监控 安全 Java
Spring Cloud 微服务治理技术详解与实践指南
本文档全面介绍 Spring Cloud 微服务治理框架的核心组件、架构设计和实践应用。作为 Spring 生态系统中构建分布式系统的标准工具箱,Spring Cloud 提供了一套完整的微服务解决方案,涵盖服务发现、配置管理、负载均衡、熔断器等关键功能。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
160 1
存储 JSON Java
410 0
|
2月前
|
数据可视化 Java BI
将 Spring 微服务与 BI 工具集成:最佳实践
本文探讨了 Spring 微服务与商业智能(BI)工具集成的潜力与实践。随着微服务架构和数据分析需求的增长,Spring Boot 和 Spring Cloud 提供了构建可扩展、弹性服务的框架,而 BI 工具则增强了数据可视化与实时分析能力。文章介绍了 Spring 微服务的核心概念、BI 工具在企业中的作用,并深入分析了两者集成带来的优势,如实时数据处理、个性化报告、数据聚合与安全保障。同时,文中还总结了集成过程中的最佳实践,包括事件驱动架构、集中配置管理、数据安全控制、模块化设计与持续优化策略,旨在帮助企业构建高效、智能的数据驱动系统。
146 1
将 Spring 微服务与 BI 工具集成:最佳实践
|
10月前
|
人工智能 安全 Java
微服务引擎 MSE:打造通用的企业级微服务架构
微服务引擎MSE致力于打造通用的企业级微服务架构,涵盖四大核心内容:微服务技术趋势与挑战、MSE应对方案、拥抱开源及最佳实践。MSE通过流量入口、内部流量管理、服务治理等模块,提供高可用、跨语言支持和性能优化。此外,MSE坚持开放,推动云原生与AI融合,助力企业实现无缝迁移和高效运维。
386 1