Spring Boot redis实现基于“发布/订阅”模型的消息队列
1.简介
MQ中间件通常有ActiveMQ、RabbitMQ、Kafka等等。除此之外,Redis也可以用作基于“发布/订阅”模型的消息推送,不过Redis实现的是一种简单的消息队列,不仅在可靠性方面比不上其他专业的消息中间件,而且Redis的消息推送也不支持Topic分组、点对点模型的消息队列。
如果我们已经在项目中使用Redis作数据缓存,同时我们的消息推送数量也不大,对可靠性要求也不是特别高,那么我们就可以使用Redis来实现消息队列了。
今天我们就基于redis 来实现一个发布-订阅的消息队列
(1) 在pom.xml文件中添加相关依赖:
(2)、添加redis配置类信息
(3)、消息接收者实现
(4)、添加一个消息发送者
package com.mscloudmesh.topic.controller;
import com.mscloudmesh.topic.sender.SenderMQ;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Sender {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@GetMapping("/send")
public String send(String msg) {
try {
redisTemplate.convertAndSend("myTopic", msg);
return "消息发送成功!";
}catch (Exception e){
e.printStackTrace();
return "消息发送失败!";
}
}
}
(5)、主程序入口
(6)、添加application.yml配置文件
最后,开始测试一下
http://localhost:8080/send?msg=hello redis
控制台输出:
至此全部完成。。。