1、使用rabbitmq-delayed-message-exchange插件实现延迟功能

实现原理:

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

延迟任务应用场景

场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时。

场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单。

场景三:过1分钟给新注册会员的用户,发送注册邮件等。

2、插件安装

RabbitMQ版本为3.7.7

下载插件地址:

https://dl.bintray.com/rabbitmq/community-plugins/3.7.x/rabbitmq_delayed_message_exchange/rabbitmq_delayed_message_exchange-20171201-3.7.x.zip

# unzip rabbitmq_delayed_message_exchange-20171201-3.7.x.zip
# cp rabbitmq_delayed_message_exchange-20171201-3.7.x.ez /usr/local/rabbitmq/plugins/
# rabbitmq-plugins enable rabbitmq_delayed_message_exchange

【RMQ】RabbitMQ性能优化---rabbitmq-delayed-message-exchange_消息延迟