【问题标题】:Find out which Active MQ is up?找出哪个 Active MQ 已启动?
【发布时间】:2017-06-03 04:46:12
【问题描述】:

我是这个 ActiveMQ 的新手。我有这种情况,我有两个 ActiveMQ 节点,有点像这样:

amq1.url=http://abcd01.xxxxxxxxxxx:8041/api/message/
amq2.url=http://abcd02.xxxxxxxxxxx:8041/api/message/

我想在我的@PostConstruct 方法中找到这两个节点中的哪一个已启动并正在运行,并使用该 URL 进一步发送消息。 我已经搜索了很多关于它的内容,我不想在这里使用ActiveMQConnectionFactory。 有没有办法找到 ActiveMQ 节点的 pingStatus? 任何帮助将不胜感激。

【问题讨论】:

    标签: java spring jms activemq


    【解决方案1】:

    使用failover 传输,而不是手动确定哪个 ActiveMQ 实例已启动。像这样的:

    failover:(tcp://primary:8041,tcp://secondary:8041)?initialReconnectDelay=100
    

    【讨论】:

    • :感谢您的回复,但我需要 URL,即“amq01”或“amq02”,无论哪个已启动并正在运行。要求是获取两者之间的 URL。
    【解决方案2】:

    您可以尝试使用 jmx 客户端访问活动 mq mbean,例如 jconsole 等...如果您能够在 jmx 控制台中看到实例的整个 mbean 库..tat 表示实例已启动。 默认启用jmx服务(至少在我使用的5.13.x版本中)

    【讨论】:

      【解决方案3】:

      您可以通过 Jolokia 查询代理。

      对于 localhost 代理(更改名称/主机以匹配您的配置):

      http://localhost:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost

      你会得到一个json。解析 Value.Slave 响应值。它将是truefalse

      通常也需要基本身份验证。所以请确保在请求中传递它。

      【讨论】:

        猜你喜欢
        • 2012-06-02
        • 2020-10-11
        • 2017-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多