本文将讲解ActiveMQ的基本使用及相关开发笔记。
安装&配置
官网下载地址:
这里我们选择Liunx环境,选择下载:
解压:
tar -zxvf apache-activemq-5.16.3-bin.tar.gz
进入/apache-activemq-5.16.3/bin,执行开启:
./activemq start
注:activemq需java环境
通过./activemq status 查看状态
./activemq stop 关闭
通过8161端口可以访问网页后台
扫描二维码关注公众号,回复:
14227169 查看本文章

基本程序编写
ActiveMQ作为消息中间件,我们需分别编写消息提供者和消费者,这里我们使用SpringBoot进行整合,首先引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
<version>2.6.3</version>
</dependency>
编写配置文件application.yml
#消息提供者的端口9001
server:
port: 9001
spring:
application:
name: activemq-provider
activemq:
broker-url: tcp://xx.xx.xx.xx:61616 #activemq的程序端口为61616
user: admin #默认用户名和密码均为admin
password: admin
jms:
pub-sub-domain: false #配置是否为发布订阅模式,默认false为点对点模式
在测试类中发送测试消息
@SpringBootTest
class ActivemqProviderApplicationTests {
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;
@Test
void contextLoads() {
//向queue队列中发送测试字符串消息
//第一个参数destinationName为目的地queue的名字
jmsMessagingTemplate.convertAndSend("spring_queue1","test1");
}
}
这里使用了点对点模式,提供者可以先发送消息到队列等待消费者消费。如果使用了发布订阅模式,则需先启动消费者订阅消息队列,再启动提供者发布信息,发布订阅模式可注册多个消费者。
打开ActiveMQ后台,可见Number Of Pending Messages(待消费的消息)数为1,说明消息发送成功
然后编写消费者
首先还是引入同样的依赖及配置文件
然后这里我们需要使用到监听器对消息队列进行监听,编写如下监听器
//注入IOC容器
@Component
public class ActivemqListener {
//设置queue的目的地,与之前配置的destinationName保持一致
@JmsListener(destination = "spring_queue1")
public void receiveMsg(Message message) throws JMSException {
//因为我们发送的消息为字符串类型,所以这里对类型进行判断筛选
if(message instanceof TextMessage){
//强转为TextMessage
TextMessage textMessage = (TextMessage) message;
System.out.println(textMessage.getText());
}
}
}
运行成功输出消息
再次查看ActiveMQ后台,可见Number Of Pending Messages归零,Messages Dequeued(出队列消息)加1,即完成对消息的消费