SpringBoot整合ActiveMQ实现消息队列

首先我们要安装ActiveMQ

可以在官网下载https://activemq.apache.org/components/classic/download/

同时可以通过网盘下载

链接:https://pan.baidu.com/s/1podU4dQMau2x927OqsQsIg 
提取码:0011

里面有很多mq的技术比如Active,RabbitMQ,Kafka

下载完成安装后我们我们要做的事情就是启动ActiveMQ的服务

在bin目录下找到你电脑是多少位的双击activemq.bat就可以启动

 

 

 

 这里我们可以看到我们已经启动成功

它会给你一个访问服务器的地址去访问服务

 这里他要我们登录一下

账号和密码都是admin

 这个时候我们就成功访问到了active服务器

这个服务器是做什么的呢,这个等我们整合完后你就会明白

好了到这里我们的ActiveMQ安装就已经完成了

下面我们就来做springboot整合

 还是老套路 

1.导入 ActiveMQ的坐标

<!--        整合ActiveMQ-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-activemq</artifactId>
        </dependency>

这样我们第一步就完成了

2.然后就是配置。告诉springboot你现在要用ActiveMQ这个消息队列技术

spring:
  activemq:
    broker-url: tcp://localhost:61616
  jms:
    template:
      default-destination: hb

下面那个是你的消息队列放入的位置随便取一个名称

3.下面就是实现api了 

首先在业务中注入一个api用来操作消息的存入队列和处理消息

@Service
public class AcitiveMqImpl implements MessageService {
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;
    @Override
    public void sendMessagemq(String id) {
        System.out.println("消息已经被放入消息队列 id:"+id);
      jmsMessagingTemplate.convertAndSend(id);//可以指定消息放在队列中的位置



    }

    @Override
    public String doMessage() {
        //接受消息处理
        String id = jmsMessagingTemplate.receiveAndConvert(String.class);
        System.out.println("消息已经被处理id"+id);

        return id;
    }
}

对于 jmsMessagingTemplate.convertAndSend();这个方法是先转换成它能够接受的类型,再发送到消息队列中去。同时这个方法也可以再配置一个参数,指定这个消息发送到哪个队列。这和我们刚刚在配置中写的一样

 jms:
    template:
      default-destination: hb

下面处理消息的方法

jmsMessagingTemplate.receiveAndConvert(String.class);

这个方法作用是先接受再将消息转换成你需要的类型。这里的转换类型需要你去自己指定

好了我们业务层的代码已经写好了

我们再写一个Controller层

可以到对它进行测试

@RequestMapping("msgs")
@RestController
public class sendMQ {

    @Autowired
    private OrderServiceImpl orderService;
    @PostMapping("{id}")
    void sendMessage(@PathVariable String id){
        orderService.order(id);

    }

}

 注意我在这里又写了一个业务层,通过这个业务层去调用发送消息到队列这个方法

@Service
public class OrderServiceImpl implements orderService{
  
    @Autowired
    private AcitiveMqImpl acitiveMq;
  
    @Override
    public void order(String id) {
        //处理消息进行一个模拟
        System.out.println("订单处理开始");
//这一步对消息进行处理 再创建一个业务专门对业务进行处理
    acitiveMq.sendMessagemq(id);

        System.out.println("订单处理结束");
    }
}

 这个就是对于消息的处理了

@RequestMapping("dos")
@RestController
public class doMessage {
@Autowired
private DealMessageImpl dealMessage;*/
    @Autowired
    private AcitiveMqImpl acitiveMq;
    @GetMapping
    String domessage(){
        String id = acitiveMq.doMessage();
        return id;


    }

}

好了到这里我们对于ActiveMQ的安装,和springbooot整合ActiveMQ已经完成了

其实很简单spring整合第三方技术很方便

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值