SpringBoot-ActiveMq
一个简单的整合案例, 初步实现 activemq
的 queue
队列模式 和 topic
订阅模式 (普通订阅, 持久订阅)
准备工作
- springboot2.0.3
- 如果要使用
activemq pool
需要另外加入activemq-pool
包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 启用JMS 的池化, 就一定要加上这个 jar-->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
</dependency>
简介
spring-jms-*.RELEASE.jar
有提供 JmsMessagingTemplate
给我们使用, 只需要在配置类上加上 @EnableJms
即可,无特殊要求,我们直接拿来用即可.
queue模式 与 topic模式
**queue模式**
点对点的发送信息
, 点对点通信,每个消息只有一个消费者,消息保证送达,离线消费者可以在下次上线后收到之前积压的消息。
案例:
如果生产者产生了100条消息,那么两个消费同时在的话,会分工合作来接收这100条消息。就是每个消费者接收到50条来处理。
**topic模式**
广播形式(主题模式)
当前有几个客户端在线,就发送几条广播给客户端。 案例
如果生产者产生了100条消息,消费者在还没有订阅这个主题之前,是不会接收到这100条消息的。
消费者只有在订阅了某个主题消息之后,生产者产生的消息 才会被接收处理。如果又两个消费者同时订阅了这个主题消息,生产者在产生100条消息时,两个消费者会同时分别接收到这100条消息。
发送
package com.example.dxp.web;
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTempQueue;
import org.apache.activemq.command.ActiveMQTempTopic;
i