【问题标题】:How to notify Clients if ActiveMQ broker is down?如果 ActiveMQ 代理关闭,如何通知客户端?
【发布时间】:2014-09-17 13:20:36
【问题描述】:

我希望客户在我的 activemq 代理因任何原因关闭时收到通知。

如何做到这一点?有没有回调机制?

【问题讨论】:

    标签: java jms activemq middleware


    【解决方案1】:

    如果代理关闭,您的客户端将失去连接。如果您使用的是故障转移 uri,那么您可能不知道在没有 TransportListener 的情况下会发生这种情况。如果不是,您真的希望您的客户知道,那么您可以处理您自己的重新连接逻辑,并且当客户端失去连接或出现任何其他连接错误(即连接被拒绝)时,您可以列出代理关闭的可能性。

    否则,您将需要一些其他监控服务专门用于监控代理的健康状况,并且客户端可以检查无法连接的事实是否不足以表明存在问题。

    【讨论】:

    • org.apache.activemq.transport.TransportListener 对此有什么帮助吗? (我正在使用故障转移 uri(主从))
    • 是的,它可以让您深入了解在使用故障转移 uri 时何时发生连接问题,但不限于代理关闭。我已经更新了响应以反映这一点。为什么您希望您的客户知道这一点?你想解决什么问题?日志记录和/或统计数据?
    • 我的系统带有 activemq 代理和其他两个部分,所以如果系统出现故障,可能是因为这三个部分中的任何一个,我想知道是代理出现故障还是其他部分,因此,如果客户可以知道代理已关闭,那么我知道它的代理是因为哪个完整系统已关闭。
    • TransportListener(或我提到的其他方法)应该没问题,只要您了解故障转移也是由网络中断引起的,并不一定意味着代理已关闭。
    • 我只是想让客户端知道代理连接有问题,因为我正在使用故障转移 uri,所以如果主代理出现故障,客户端会重新连接到故障转移代理,反之亦然,但我仍然想要我的客户知道主要和/或故障转移已关闭。一种方法是使用TransportListener,还有其他有效的方法吗?
    猜你喜欢
    • 1970-01-01
    • 2017-02-21
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 2011-07-26
    • 2012-06-19
    相关资源
    最近更新 更多