比如先发送了一个20秒的 然后紧接着发送了一个2秒的 然后 消费者会在20秒后才会收到2秒的信息 因为2秒的信息的前面有个20秒的信息 2秒的信息要等20秒的信息被消费后它才会被消费 这是队列的机制 先进先出
所以要使用Rabbitmq插件来实现精准的发送
插件必须和rabbitmq的版本一一对应
使用延时插件就可以让rabbitmq的延时消息精准发送 就先发一个20秒再发一个2秒 2秒的就会被先消费
效果:
1:将插件拷贝到docker的mq容器内部:docker cp rabbitmq_delayed_message_exchange-3.8.0.ez 3440c1a8c02a:/plugins (3440c1a8c02a是mq容器的id)
2:将 rabbitmq_delayed_message_exchange-3.8.0.ez拷贝到docker容器的rabbitmq容器的plugins里面
3:使用docker exec -it rabbitmq3.7.7 /bin/bash进入到rabbitmq3.7.7容器的目录
4:然后cd plugins进入到plugins目录里面 plugins里面就有rabbitmq的所有插件
5:就能看到rabbitmq_delayed_message_exchange-3.8.0.ez 延时插件了
6:然后输入rabbitmq-plugins enable rabbitmq_delayed_message_exchange启动延时插件