首页 文章

为什么在RabbitMQ中连接恢复后存在重复的消费者?

提问于
浏览
4

我在用:

  • RabbitMQ 3.5.1

  • Java RabbitMQ客户端

  • 具有两个RabbitMQ实例的集群

我的队列是:

  • Durable = false

  • Exclusive = false

  • 自动删除= true

  • 队列镜像不影响结果

在我的应用程序中,有一个异步消费者通过回调接收消息 . 当我尝试通过禁用与代理的网络通信来模拟连接失败时,会发生此问题 . 在重新 Build 连接后,队列(在Web管理界面中)显示两个使用相同使用者标记连接但具有不同端口号的使用者 .

当我停止应用程序时,其中一个消费者消失,但另一个保持连接,因此队列不会被删除 . 这是预期的还是我必须改变一些东西以避免这种情况?

1 回答

  • 1

    有两个连接,因为默认心跳是580秒,因此服务器需要花费时间检测它 .

    当该值设置为较低值时,第一个连接立即关闭 . 有关Detecting Dead TCP Connections with Heartbeats中心跳选项的更多详细信息

    感谢Gas提供使用RabbitMQ用户组论坛的提示 .

相关问题