利用 ttl 和死信队列实现延时消息功能

本贴最后更新于 1950 天前,其中的信息可能已经时移世易

利用 ttl 和死信队列实现延时消息功能****

Ttl****

队列的一个可选属性。该队列的消息多少毫秒后过期。同样,每条消息也可以通过 expiration 属性来设置自己的过期时间。

死信队列****

使用方式基本上和普通队列一样,可以为一个队列设置死信队列参数,设置后,该队列过期和被拒收的消息都会被路由到死信队列里。

具体代码如下:

wps8259tmpjpg

x-message-ttl:消息过期时间

如果想设置每条消息的过期时间可使用如下配置
wps825Atmpjpg

当队列消息过期时间和单条消息过期时间都有配置时,以短的一个为准,比如这里是 5000 毫秒生效。

x-dead-letter-exchange:死信交换器,当消息过期或被拒收时将会通过它来路由。

x-dead-letter-routing-key:死信路由键

两个消费者****

消费者一绑定正常的队列名和交换器,路由键。

消费者二绑定死信队列和死信交换器,死信路由键。

结果

正常消费:开启消费者一,消费者二无法收到消息。

死信消费:关闭消费者一,在消息发送 5 秒后,消费者二收到消息。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...