【发布时间】:2022-02-21 04:49:33
【问题描述】:
我在我们的 stomp.py 7.0 客户端(仅限侦听器)中看到行为,在一段时间未接收消息的空闲时间之后,ActiveMQ 5.15.9 代理似乎放弃了客户端(即查看 ActiveMQ 管理控制台显示零消费者) .奇怪的是,客户端的 on_disconnected 处理程序从未被调用,我们对客户端服务进行了健康检查,检查连接 is_connected(),但它仍然返回 true。
根据我的理解/研究(如果其中有任何错误,请更正)这是由于代理试图清理它认为不活跃的资源。同样根据我的研究,“心跳”可以用来避免对经纪人的这种看法。
我知道如何从客户端发送心跳标头以及如何在on_connected 中检查来自服务器/代理的响应(就其预期而言),但我的问题是如何从客户端到服务器/代理?我需要在我正在收听的队列上发送消息吗?如果是这样,我如何发送“心跳消息”而不必调整侦听器中的消息处理代码?没有实体送吗?还需要将代理配置为接受心跳吗?如果未配置,则从客户端声明和发送它们仍会导致代理断开客户端?
【问题讨论】:
-
activemq 5.15.9 alpine,Stomp.py 7.0
标签: python activemq stomp stomp.py