【ActiveMQ】SpringBoot整合ActiveMQ基本程序及开发笔记

本文将讲解ActiveMQ的基本使用及相关开发笔记。

安装&配置

官网下载地址:

ActiveMQ (apache.org)

这里我们选择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端口可以访问网页后台

 基本程序编写

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,即完成对消息的消费

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值