当前位置:

首页 > 编程开发 > 怎么在SpringBoot中整合ActiveMQ

怎么在SpringBoot中整合ActiveMQ

目录结构引入maven依赖org.springframework.bootspring-boot-starter-parent1.5.4.RELEASEUTF-8UTF-81.8org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtestorg.springframework.boot

本文目录

    目录结构

    怎么在SpringBoot中整合ActiveMQ

    引入 maven依赖

     
        org.springframework.boot
        spring-boot-starter-parent
        1.5.4.RELEASE
         
      
      
        UTF-8
        UTF-8
        1.8
      
      
        
          org.springframework.boot
          spring-boot-starter
        
        
          org.springframework.boot
          spring-boot-starter-web
        
        
          org.springframework.boot
          spring-boot-starter-test
          test
        
        
          org.springframework.boot
          spring-boot-starter-activemq
        
      
      
        
          
            org.springframework.boot
            spring-boot-maven-plugin
          
        
      

    引入 application.yml配置

    spring:
     activemq:
      broker-url: tcp://127.0.0.1:61616
      user: admin
      password: admin
    queue: springboot-queue
    server:
     port: 8080

    创建QueueConfig

    @Configuration
    public class QueueConfig {
      @Value("${queue}")
      private String queue;
    
      @Bean
      public Queue logQueue() {
        return new ActiveMQQueue(queue);
      }
    
      @Bean
      public JmsTemplate jmsTemplate(ActiveMQConnectionFactory activeMQConnectionFactory, Queue queue) {
        JmsTemplate jmsTemplate = new JmsTemplate();
        jmsTemplate.setDeliveryMode(2);// 进行持久化配置 1表示非持久化,2表示持久化
        jmsTemplate.setConnectionFactory(activeMQConnectionFactory);
        jmsTemplate.setDefaultDestination(queue); // 此处可不设置默认,在发送消息时也可设置队列
        jmsTemplate.setSessionAcknowledgeMode(4);// 客户端签收模式
        return jmsTemplate;
      }
    
      // 定义一个消息监听器连接工厂,这里定义的是点对点模式的监听器连接工厂
      @Bean(name = "jmsQueueListener")
      public DefaultJmsListenerContainerFactory jmsQueueListenerContainerFactory(
          ActiveMQConnectionFactory activeMQConnectionFactory) {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        factory.setConnectionFactory(activeMQConnectionFactory);
        // 设置连接数
        factory.setConcurrency("1-10");
        // 重连间隔时间
        factory.setRecoveryInterval(1000L);
        factory.setSessionAcknowledgeMode(4);
        return factory;
      }
    }

    创建生产者:

    @SpringBootApplication
    @Component
    @EnableScheduling
    public class Producer {
      
      @Autowired
      private JmsMessagingTemplate jmsMessagingTemplate;
      
      @Autowired
      private Queue queue;
      
      @Scheduled(fixedDelay=3000)
      public void send() {
        String result = System.currentTimeMillis()+"---测试";
        System.out.println("result"+result);
        jmsMessagingTemplate.convertAndSend(queue,result);
      }
      public static void main(String[] args) {
        SpringApplication.run(Producer.class, args);
      }
    }

    创建消费者的application.yml

    spring:
     activemq:
      broker-url: tcp://127.0.0.1:61616
      user: admin
      password: admin
    queue: springboot-queue
    server:
     port: 8081

    创建消费者:

    @Component
    @SpringBootApplication
    public class consumer {
    
      private int count =0;
      
      @JmsListener(destination = "${queue}")
      public void receive(TextMessage textMessage,Session session) throws JMSException {
        String text = textMessage.getText();
        
        System.out.println("消费:"+text+"第几次获取消息count:"+(++count));
        
        System.out.println();
        String jmsMessageID = textMessage.getJMSMessageID();
      }
     
      public static void main(String[] args) {
        SpringApplication.run(consumer.class,args);
      }
    }

    结果显示:

    怎么在SpringBoot中整合ActiveMQ

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 activemq
    相关文章 更多
    springBoot项目常用目录有哪些
    springBoot项目常用目录有哪些

    springBoot项目常用目录springBoot项目的目录结构及名规范介绍基于SpringBoot开发时的目录结构及命名规范,通过介绍能够为你解决,在实际项目中如何规划目录结构?如何命名目录更规范?各个目录分别代表什么含义?等三个问题。目录说明servicex//项目名|-admin-ui//管理服务前端代码(一般将UI和SERVICE放到一个工程中,便于管理)|-servicex-auth//模块1|-servicex-common//模块2|-servicex-gateway//模块3|-serv

    学习Java JMS:了解消息传递技术的基础知识
    学习Java JMS:了解消息传递技术的基础知识

    1.JavaJMS简介JavaJMS是一个用于建立、发送和接收消息的Javaapi。它提供了可靠的消息传递功能,非常适合分布式系统和企业级应用程序。消息传递系统可以将消息从一个应用程序发送到另一个应用程序,即使这两个应用程序位于不同的机器上。2.JMSAPIJMSAPI定义了一系列接口和类,用于发送和接收消息。这些接口和类包括:javax.jms.ConnectionFactory:用于创建连接到JMS服务器的连接。javax.jms.Connection:连接到JMS服务器的连接。javax.jms.S

    实现分
    实现分

    ActiveMQ是Apache出品的一款开源消息中间件,它使用Java语言开发,具有可靠的消息传递、异步通信和集群支持等特点。ActiveMQ能够在不同的应用之间进行数据交换,并且支持多种消息协议,如JMS、AMQP和MQtT等。1.ActiveMQ的优势ActiveMQ是一款非常成熟的消息中间件,它具有以下优势:可靠的消息传递:ActiveMQ能够保证消息的可靠传递,即使在网络故障或服务器宕机的情况下,消息也不会丢失。异步通信:ActiveMQ支持异步通信,允许不同的应用之间进行非实时的通信。集群支持:

    了解 Java ActiveMQ 的 20 个重要概念
    了解 Java ActiveMQ 的 20 个重要概念

    1.消息代理(Broker)ActiveMQ核心组件,负责处理所有消息流。它提供一个平台,应用程序可以连接、发送和接收消息。BrokerServicebroker=newBrokerService();broker.addConnector("tcp://0.0.0.0:61616");broker.start();2.消息队列在ActiveMQ中存储消息的逻辑概念容器。消息队列可以从多个生产者接收消息,并将其传递给多个消费者。Queuequeue=session.createQueue("my-queu

    精通 Java ActiveMQ 的 20 个专业技巧
    精通 Java ActiveMQ 的 20 个专业技巧

    1.消息路由使用JMSSelectors过滤消息:使用JMSSelectors根据消息属性对传入消息进行筛选,仅处理相关消息。创建自定义消息路由器:扩展ActiveMQ的路由功能,通过编写自定义路由器将消息发送到特定目的地。配置轮询负载均衡:将传入消息均匀分布到多个消息消费者,提高处理能力。2.持久性启用持久性会话:确保即使应用程序或服务器发生故障,消息也能持久存储,避免丢失。配置死信队列(DLQ):将处理失败的消息移至DLQ,以便重新处理或分析。使用Journal存储:提高持久性消息的性能,减少数据库开

    Java ActiveMQ 的最佳 20 个实践
    Java ActiveMQ 的最佳 20 个实践

    1.选择合适的客户端传输协议ActiveMQ支持多种客户端传输协议,包括STOMP、AMQP和OpenWire。根据您的应用程序需求选择合适的协议,以优化性能和可靠性。2.配置消息持久性持久性消息即使在服务器重新启动后也能持久化,而非持久性消息则不会。对于关键消息,选择持久性以确保可靠传递。演示代码://设置消息持久性MessageProducerproducer=session.createProducer(destination);producer.setDeliveryMode(DeliveryMo

    实现企业高效可靠消息传输的Java ActiveMQ
    实现企业高效可靠消息传输的Java ActiveMQ

    ActiveMQ是一个完全开源的Java消息服务器,也是Apache软件基金会旗下最受欢迎的项目之一。它遵循Java消息服务(JMS)规范,提供了一套用于构建分布式、异步和面向消息的应用程序的api。ActiveMQ以其可靠性、高效性和灵活性而著称,使其成为各种企业应用程序的理想选择。可靠性:ActiveMQ使用持久化存储机制来确保消息的可靠传递。当消息被发送到ActiveMQ时,它将被写入磁盘,即使服务器发生故障,这些消息也不会丢失。当服务器重新启动时,它会从持久化存储中恢复这些消息,并将其传递给相应的

    解析 Java ActiveMQ 的消息路由策略
    解析 Java ActiveMQ 的消息路由策略

    1.简单路由简单路由策略是一种最基本的路由策略,它将消息路由到一个固定的目的地。该策略的配置非常简单,只需要指定目的地的名称即可。<route><fromuri="queue:inbox"/><touri="queue:outbox"/></route>上述配置将把所有发送到inbox队列的消息路由到outbox队列。2.目的地路由目的地路由策略允许将消息路由到多个目的地。该策略的配置比简单路由策略复杂一些,需要指定多个目的地的名称。<route>

    解析SpringBoot和SpringMVC之间的异同
    解析SpringBoot和SpringMVC之间的异同

    解析SpringBoot和SpringMVC之间的异同SpringBoot和SpringMVC是Java领域中非常重要的开发框架。虽然它们都属于Spring框架的一部分,但是在使用和功能上有一些明显的区别。本文将对SpringBoot和SpringMVC进行比较,解析它们之间的异同。首先,让我们来了解一下SpringBoot。SpringBo

    探索SpringCloud和SpringBoot在微服务领域的不同应用方式
    探索SpringCloud和SpringBoot在微服务领域的不同应用方式

    近年来,随着云计算和分布式架构的兴起,微服务架构的应用越来越广泛。而SpringCloud和SpringBoot作为Java开发中的两个重要框架,对于微服务的实现起到了重要的作用。然而,很多人对于它们在微服务领域的不同应用方式还存在一定的疑惑。本文将从不同的角度探索SpringCloud和SpringBoot在微服务中的应用方式。首先,我们来了解一下Spri

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。