传送门:ActiveMQ
上面有与JDK对应的版本,否则会报错
ActiveMQ的正确启动需要安装jdk
jdk的安装文档:
linux安装jdk8_最后d轻语的博客-CSDN博客_linux安装jdk
- 解压命令 :tar -zxvf apache-activemq-5.16.5-bin.tar.gz
- 进入bin目录 : cd apache-activemq-5.16.5/bin/
- 启动ActiveMQ : ./activemq start
启动成功界面:
activemq默认端口号为:61616 ,对外访问的端口号为:ip:8161/admin/
账号:admin
密码:admin
无法访问activemq的控制台的解决方案:
传送门:无法访问activemq的8161控制台_WHJwhj552200的博客-CSDN博客_activemq控制台无法访问
注意细节:需要重启activemq
点击Queues可以查看消息队列
①导入依赖,下载的那个版本的就引入那个版本的
- <!-- activemq 依赖 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-activemq</artifactId>
- </dependency>
②配置文件
- server:
- port: 8001
- spring:
- application:
- name: activemq
- activemq:
- broker-url: tcp://xxx.xxx.xxx.xxx:61616
- user: admin
- password: admin
- jms:
- pub-sub-domain: false #配置是否为发布订阅模式,默认false为点对点模式
③点对点模式
生成者消息发送:
消费者消息接受:
- //注入IOC容器
- @Component
- public class ActivemqListener {
-
- //设置queue的目的地,与之前配置的destinationName保持一致
- @JmsListener(destination = "test-queue")
- public void receiveMsg(Message message) throws JMSException {
-
- //因为我们发送的消息为字符串类型,所以这里对类型进行判断筛选
- if(message instanceof TextMessage){
-
- //强转为TextMessage
- TextMessage textMessage = (TextMessage) message;
-
- System.out.println(textMessage.getText());
- }
- }
- }
最后,启动启动类,即可以点对点的发方式,接收生产者发送过来的消息!
④ 发布订阅
修改配置
生产者
消费者
由于这是发布-订阅模式,所以我们首先要运行消费者,消费者成功启动后,再启动生产者