anu*_*ava 4 activemq-classic jms cluster-computing broker
我已经完全按照Bruce Snyder 的这篇文章建立了一个经纪人网络:
经纪人1:
<networkConnector name="amq1-nc"
uri="static:(tcp://localhost:61617)"
userName="system"
password="manager"
/>
Run Code Online (Sandbox Code Playgroud)
经纪人2:
<networkConnector name="amq2-nc"
uri="static:(tcp://localhost:61616)"
userName="system"
password="manager"
/>
Run Code Online (Sandbox Code Playgroud)
我在经纪人的配置 XML 的经纪人标签中都有 AdvisorySupport="false" 并启动了两个经纪人。
然后我使用以下命令启动了消费者:
ant consumer -Durl=tcp://0.0.0.0:61616
Run Code Online (Sandbox Code Playgroud)
最后使用以下命令启动生产者:
ant producer -Durl=tcp://0.0.0.0:61617
Run Code Online (Sandbox Code Playgroud)
所有生成的消息然后在端口 61617 上运行的代理上进入挂起状态,而在端口 61616 上连接的消费者永远不会收到消息。
经纪人网络是否会在未启用advisorySupport 的情况下停止转发消息?我认为这是在最近的版本中修复的。(我使用的是 activemq 5.4.2 版本)。
代理的 ActiveMQ 静态网络是否停止转发消息advisorySupport 被禁用?
更新: 我在使用advisorySupport="false" 和staticallyIncludedDestinations 时遇到了问题。
我们主要使用 JMS 进行请求-响应,如下所述:http : //activemq.apache.org/how-should-i-implement-request-response-with-jms.html
我们在生产者端使用了一个临时队列,以便能够接收来自消费者的响应,并且由于 staticallyIncludedDestinations 不能在其中包含这些临时队列名称,因此,当禁用了 advisorSupport 时,所有生产者都无法从客户端接收响应。
我得出的结论是,对于我们的方案,advisorySupport 不能关闭,除非有一些我不知道的其他配置技巧。
文档说:
“警告:动态网络代理拓扑需要咨询消息,因为 NetworkConnectors 订阅咨询消息。在没有咨询的情况下,必须静态配置网络。
咨询消息告诉节点远程消费者在哪里,因此在哪里发送传入消息。没有它们,您必须自己配置这些东西。
该文档有一个如何做到这一点的示例:http : //activemq.apache.org/networks-of-brokers.html
| 归档时间: |
|
| 查看次数: |
2285 次 |
| 最近记录: |