采用rabbitMQ的延時隊列。RabbitMQ具有以下兩個特性,RabbitMQ可以針對Queue和Message設置x-message-tt,來控制消息的生存時間,如果超時,則消息變?yōu)閐ead letter。
RabbitMQ的Queue可以配置x-dead-letter-exchange和x-dead-letter-routing-key(可選)兩個參數(shù),用來控制隊列內(nèi)出現(xiàn)了deadletter,則按照這兩個參數(shù)重新路由。結合以上兩個特性,就可以模擬出延遲消息的功能。
優(yōu)點就是高效,可以利用rabbitmg的分布式特性輕易的進行橫向擴展,消息支持持久化增加了可靠性。