最近做了一个测试:
1rabbitmq为3.6版本
2用celery的worker1去消费消息的时候,让worker1的网络中断,猜想其它的worker2会有什么想法。
结果证明:网络中断2份半后,假如有其它worker存在,则会将消息置为ready,让其worker2消费该消息!
rabbitmq默认会给worker1一个2分半时间的允许,待你网络中断后,rabbitmq依然能识别该消息被worker1消费。超出2分半后,rabbitmq则会考虑将该消息分配给其它的worker,假如有其它worker2存在,则会计时,2分半后没人处理,则会将消息置为ready,并让其它消费者消费。2分半如果还没有worker,则会让消息一直处于unack