(六)、Springboot+Redis实现通用消息队列stater

1、消息队列选择

其实除了主流的各大消息中间件ActiveMQ, RocketMQ,RabbitMQ,Kafka之外,其实Redis也是支持消息队列功能的。

而有时候我们不需要引入消息队列中间件,跟缓存中间件Redis一起一起共用一个Redis作为消息中间件也是可以的,这样就少用了一个组件。

2、Redis能实现哪些消息模式?

  • 1)、使用stream实现点对点消息模式
  • 2)、使用publish/subscribe实现发布订阅模式

3、我们将如何封装发消息中间件功能在starter中

  • 1)、通过配置文件配置消息队列名称和对应的消费者类列表
  • 2)、读取配置文件看创建消息队列相关stream(已创建就不重复)
  • 3)、根据stream和消费者类名做一一绑定,实现不同的消息队列绑定不同的消费者监听器
  • 4)、实现一个通用的消息消费者抽象类,子类只需要继承该类并且注入spring容器即可实现消费者接受减小功能
  • 5)、将配置类和业务处理类放入spring.factories中实现自动配置
  • 6)、使用redis的key过期监听实现延时队列功能

这个过程皆基于封装好的redis-cache-spring-boot-starter,如果需要则先查看封装SpringCache为starter的模块。

4、代码实现

4.1、依赖引入

因为是基于它实现的,所以需要引入它的依赖。

 
 

你可能感兴趣的:(Redis原理学习与分析,spring,boot,redis,后端)