为什么rabbitmq的队列绑定是自动改变的?

Why rabbitmq's queue binding is auto changed?

我创建了一个队列 "a.1" 和一个交换器 "a" 并通过 rabbitmq 通道将它们绑定在一起。该通道处于一个连接中,该连接通常有大约 3 百 channels.After 运行,持续 20-30 分钟,绑定消失,队列绑定到默认交换。我在 rabbitmq admin 里看到了,我看到队列曾经被关闭并且自动 recovered.After 正在恢复,我可以看到通道是 changed.channel info:ip:2341 (633),端口被更改为ip:3350.但是队列默认绑定 exchange.Why rabbitmq 有这种奇怪的行为?如何避免?

您正在使用 auto-delete 个队列,这意味着如果所有消费者都关闭,队列将被自动删除。然后另一个通道可以重新创建具有相同名称的队列。 因此,如果您正在创建具有相同名称的队列,您可以确保它在创建时每次都绑定。或者您可以为自动删除队列添加过期 TTL,以便在删除之前等待一段时间(以允许另一个通道开始消费)。