我使用 python 的 Kombu (3.0.26) 和 librabbitmq 连接器连接到 EC2 实例上 AWS 中的 rabbitmq。当我启动和停止应用程序时,与兔子的连接会按预期出现并消失。当我再次使用 TERM 或 KILL 终止应用程序时,连接会在 rabbitmq 上按预期消失。
但是,如果我使用 AWS 控制台停止或终止实例,则连接将永久保留在 rabbitmq 上,直到我进入并强制关闭连接。
我可以通过在应用程序上添加 AMQP 心跳来解决这个问题,并弄清楚如何不断地 ping 应用程序仍然存在的服务器。但是,如果心跳没有及时通信,我有一些阻塞调用可能会过早地终止连接。我宁愿rabbitmq服务器只是找出TCP连接已死并关闭连接。
当 ec2 实例停止或终止时,是否有人遇到过连接问题?