依赖和配置
build.gradle
1 | dependencies { |
application.yml
1 | spring: |
其他貌似都是代码里面的事儿了😂
最简单的demo
搭了一个最简单的demo,备忘
- 1发布者生产消息
- 1消费者接收消息
https://github.com/michaelzx/spring-boot-rabbit-demo
延迟消息队列
两个核心关键词:TTL
、DLX
TTL
TTL是Time To Live
的缩写,生存时长
RabbitMQ,允许我们为Queue(队列)
或Message(消息)
设置TTL,一旦过期,就会变成Dead Letter(死信)
如果同时,为
队列
和消息
设置TTL,则会以较小的为准
DLX
DLX是Dead Letter Exchanges
的缩写,死信交换器
RabbitMQ的队列
提供了2个可选参数:x-dead-letter-exchange
、x-dead-letter-routing-key
x-dead-letter-exchange
:出现死信
之后,将死信
从新发送到指定的交换器
x-dead-letter-routing-key
:出现死信
之后,将死信
从新发送到指定的队列
这两个参数必须同时使用
,只有这样才能确定最后是转发到哪个队列的
做了一个简单的demo:https://github.com/michaelzx/spring-boot-rabbit-mq-delay-demo
广播(订阅)
N个消费者,消费同一个队列,每个人都能拿到相同的消息
待实践,备忘留坑
参考文章
《RabbitMQ 实现延迟队列的两种方式》
《spring boot 自学笔记(五) Rabbitmq集成,延时消息队列实现》
《SpringBoot的RabbitMQ消息队列: 四、第三模式”Publish/Subscribe”》