SpringBoot整合MQ中间件

一、ActiveMQ简介

1. ActiveMQ

​ - 消息队列 是指利用 高效可靠 的 消息传递机制 进行与平台无关的 数据交流,并基于 数据通信 来进行分布式系统的集成。
- ActiveMQ是Apache所提供的一个开源的消息系统,完全采用Java来实现,因此,它能很好地支持J2EE提出的JMS(Java Message Service,即Java消息服务)规范。JMS是一组Java应用程序接口,它提供消息的创建、发送、读取等一系列服务。JMS提供了一组公共应用程序接口和响应的语法,类似于Java数据库的统一访问接口JDBC,它是一种与厂商无关的API,使得Java程序能够与不同厂商的消息组件很好地进行通信。

  1. ActiveMQ是消息队列技术,为解决高并发问题而生
  2. ActiveMQ生产者消费者模型(生产者和消费者可以跨平台、跨系统)
  3. ActiveMQ支持如下两种消息传输方式 :
    • Queue点对点的模式 生产的消息会放到消息服务器中, 直到消费者将消息消费. 点对点模式即一条消息只能被消费一次,消费的先后顺序为优先连接到生产端.
    • Topic发布/订阅模式 先订阅后发布, 生产的消息不会进行保存,也就是说在生产者发布消息是订阅者掉线或者连接不是生产者,那么生产者后续不会重新发布消息补救.模式特点:生产者发布的消息所有订阅者都能够接收,不存在点对点一个消息只能消费一次.

二、Window安装ActiveMQ

下载地址:http://activemq.apache.org/download-archives.html
进入官网可以下载各种版本, 下载自己相应的版本即可; 本文使用的版本时: 5.15.9
在这里插入图片描述
在这里插入图片描述
window下载是一个zip压缩包,直接解压即可, 打开CMD进入解压的bin目录下执行 activemq.bat start 启动。启动完成后打开浏览器输入地址即可看到控制台。

启动方式: bin目录下 activemq.bat start
访问地址:http://localhost:8161/admin/
默认账号:admin / admin
默认端口:8161 (可自行修改/usr/local/apache-activemq-5.15.9/conf/jetty.xml)
在这里插入图片描述

三、SpringBoot 整合ActiveMQ

创建SpringBoot项目,添加POM依赖。这里为了方便只创建了一个项目,正常情况下应该创建两个项目:一个作为生产者,一个作为消费者。

    <!--ActiveMq消息中间件-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-activemq</artifactId>
        <version>2.3.5.RELEASE</version>
    </dependency>

    <!--消息队列连接池-->
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-pool</artifactId>
        <version>5.16.0</version>
    </dependency>

引入POM文件后,接下来设置ActiviteMQ的参数,打开项目的配置文件:application.yml或者application.properires;

spring:
  session:
    store-type: none
  jms:
    pub-sub-domain: true
  activemq:
    broker-url: tcp://127.0.0.1:61616
    user: admin
    password: admin
    close-timeout: 15s   # 在考虑结束之前等待的时间
    in-memory: true      # 默认代理URL是否应该在内存中。如果指定了显式代理,则忽略此值。
    non-blocking-redelivery: false  # 是否在回滚回滚消息之前停止消息传递。这意味着当启用此命令时,消息顺序不会被保留。
    send-timeout: 0     # 等待消息发送响应的时间。设置为0等待永远。
    queue-name: active.queue.tom  #点对点模式 消费者
    topic-name: active.topic.jerry #发布-订阅模式 主题名称
    pool:
      enabled: true  #true表示使用连接池;false时,每发送一条数据创建一个连接
      max-connections: 10   #连接池最大连接数
      idle-timeout: 30000   #空闲的连接过期时间,默认为30

启动类开启消息对列 @EnableJms

@SpringBootApplication
//开启缓存
@EnableCaching
//开启MQ
@EnableJms
public class WeChatAppApplication {
   

    public static void main(String[] args) {
   
        SpringApplication.run(WeChatAppApplication.class, args);
    }

}

初始化ActiveMQ ,配置连接

@Configuration
public class ActiviteMqConfig {
   

    /**
     * 提取配置文件参数信息
     *
     */
    @Value("${spring.activemq.broker-url}")
    private String brokerUrl;

    @Value("${spring.activemq.user}")
    private String username;

    @Value("${spring.activemq.topic-name}")
    private String password;

    @Value("${spring.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值