0
点赞
收藏
分享

微信扫一扫

018.SpringBoot整合ActiveMQ

米小格儿 2022-01-20 阅读 97

下载MQ

ActiveMQicon-default.png?t=M0H8https://activemq.apache.org/download-archives.html

解压运行mq.bat

 

访问mq后台

http://localhost:8161/admin/index.jsp

账号密码admin  admin

 

引入依赖

<!--MQ-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<!--消息队列连接池-->
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-pool</artifactId>
</dependency>

创建配置

# MQ tcp://localhost:61616
spring.activemq.broker-url=tcp://localhost:61616
#true 表示使用内置的MQ,false则连接服务器
spring.activemq.in-memory=false
#true表示使用连接池;false时,每发送一条数据创建一个连接
spring.activemq.pool.enabled=false
#连接池最大连接数
spring.activemq.pool.max-connections=10
#空闲的连接过期时间,默认为30秒
spring.activemq.pool.idle-timeout=30000
#强制的连接过期时间,与idleTimeout的区别在于:idleTimeout是在连接空闲一段时间失效,而expiryTimeout不管当前连接的情况,只要达到指定时间就失效。默认为0,never
#spring.activemq.pool.expiry-timeout=0

启动类添加MQ注解

@EnableJms //启动消息队列
public class CoreApplication {

    //项目启动时执行的方法
    public static void main(String[] args) {

Controller开始往MQ插入数据

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;


@Api(tags = {"002-MQ"} )
@RestController
@RequestMapping(value = "/MQ")
public class MqApi {

    //注入springboot封装的工具类
    @Resource
    private JmsMessagingTemplate jmsMessagingTemplate;

    @GetMapping("/Add")
    @ApiOperation(value = "插入MQ")
    public Boolean Add(String name) {
        jmsMessagingTemplate.convertAndSend("test", name);
        return true;
    }
}

接收MQ的消息

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Component;

@Component
public class ConsumerService {

    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    // 使用JmsListener配置消费者监听的队列,其中name是接收到的消息
    @JmsListener(destination = "test")
    //@SendTo("outtest") 这个方法同前面的往MQ插入数据一样,把结果插入outtest里面
    public void handleMessage(String name) {
        System.out.println("成功接受" + name);
    }
}

监控的内容

 

以上属于生产消费模式,订阅模式和逻辑可以参考下面的文章

SpringBoot集成ActiveMQ实例详解_罗马没假日-CSDN博客_springboot 集成activemq配置详解

举报

相关推荐

0 条评论