【问题标题】:Are the connection advisory messages forwarded across a network of brokers?连接咨询消息是否通过代理网络转发?
【发布时间】:2022-01-18 02:29:22
【问题描述】:

我需要处理从 ActiveMQ.Advisory.Connection 主题从一个代理到另一个使用网络连接器的代理的建议消息。

在代理A上,即链接代理B,如果客户端Ca正在连接,我希望客户端Cb接收A的通知消息。

有可能吗?

【问题讨论】:

    标签: activemq


    【解决方案1】:

    由于我自己没有尝试过,我首先虽然将咨询主题视为其他主题,但似乎并非如this post中所解释的那样

    关于咨询主题的文档没有提到这一点,上面的帖子是由 ActiveMQ 开发人员编写的,这似乎是一个可靠的来源。

    在连接到咨询主题时,如果您有适当的授权,则必须小心:您必须向所有客户授予对咨询主题的读/写访问权限,如 security doc 中所述。 This SO question 与未正确配置安全性可能遇到的问题完全相关。

    在您这边,我建议您创建一个代理网络,例如a Docker Compose 并在本地进行测试。

    更多有用的读物​​:

    【讨论】:

    • 好的,所以您确认代理 A 上的客户端 A,如果订阅代理 A 上的 ActiveMQ.Advisory.Connection 主题,如果客户端 B 正在连接到代理 B,则应该收到连接咨询消息?
    • 我修改了我的答案,因为这似乎不可能。我首先认为咨询主题只是在网络上传播,但似乎并非如此post 中所解释的那样。也许您可以在订阅该主题的每个代理中创建一个特定的路由并将其发布到专用队列/主题(代理 A 中的 clients.A,代理 B 中的 clients.B 等)或创建一个独特的主题但通过代理发起者丰富每条消息。
    • 非常感谢!这就是我想知道的。