java解决rabbitMq先进先出改为按失效时间出队

案例:

	同一队列中,有2个消息A和B,A延时3小时,先进。B延时2小时,后进。那么AB会在3小时后才会被消费。

解决方案:

通过插件rabbitmq-delayed-message-exchange插件解决延迟功能

下载地址

启用插件

使用命令rabbitmq-plugins enable rabbitmq_delayed_message_exchang启用插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchang
输出如下:

The following plugins have been enabled:
  rabbitmq_delayed_message_exchange
通过rabbitmq-plugins list查看已安装列表,如下:

...
[ ] rabbitmq_delayed_message_exchange 20171215-3.6.x
...

windows直接重启即可
通过rabbitmq-plugins list查看已安装列表

安装插件后会生成新的Exchange类型x-delayed-message,该类型消息支持延迟投递机制,接收到消息后并未立即将消息投递至目标队列中,而是存储在mnesia(一个分布式数据系统)表中,检测消息延迟时间,如达到可投递时间时并将其通过x-delayed-type类型标记的交换机类型投递至目标队列。
java使用方案参考

	https://blog.csdn.net/eumenides_/article/details/86027185

参考:https://www.cnblogs.com/-mrl/p/11114116.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值