如何配置 TomEE 嵌入式 ActiveMQ 代理的静态网络以便客户端可以通信?
How can I configure a static network of TomEE embedded ActiveMQ brokers so that clients can communicate?
我有三个 TomEE 实例 运行。我想将一个用作 'master' 代理,并让另外两个实例作为客户端连接到主实例。我希望客户端能够相互发送/接收消息。
最大的要求是我必须使用静态网络;简单地将客户端 tomee.xml
中的 ServerUrl
指向主 URL 不是一个选项。
我已经验证我能够静态连接两个容器并传递消息,但是当我引入第三个容器(主容器)时,消息停止从 'Client-A' 流向 'Client-B'
大师tomee.xml:
<Resource
id="ra/activemq"
type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(tcp://127.0.0.1:61616,network:static:(tcp://127.0.0.1:61615,tcp://127.0.0.1:61617))/tomeeActiveMq?useJmx=true
ServerUrl = tcp://127.0.0.1:61616
</Resource>
客户端-A tomee.xml:
<Resource
id="ra/activemq"
type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(tcp://127.0.0.1:61615,network:static:tcp://127.0.0.1:61616)/server0?useJmx=true&persistent=false
ServerUrl = tcp://127.0.0.1:61615
</Resource>
客户端-B tomee.xml:
<Resource
id="ra/activemq"
type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(tcp://127.0.0.1:61617,network:static:tcp://127.0.0.1:61616)/server1?persistent=false&useJmx=true
ServerUrl = tcp://127.0.0.1:61617
</Resource>
我的 ActiveMQ 控制台显示两个客户端确实通过静态网络连接到主服务器:
这是根据 HawtIO 的代理布局图:
提前致谢。
对于 3+ 代理网络,您需要将 networkTTL
选项设置为大于 1 的值,这是默认值。 TTL 选项设置了一条消息可以到达的网络代理的最大限制。
因此,默认情况下,您可以在同一网络中通信 c1<->master 和 c2<->master,但不能通信 c1<->c2。
虽然不确定如何在资源适配器中通过 URI 传递该选项。
我有三个 TomEE 实例 运行。我想将一个用作 'master' 代理,并让另外两个实例作为客户端连接到主实例。我希望客户端能够相互发送/接收消息。
最大的要求是我必须使用静态网络;简单地将客户端 tomee.xml
中的 ServerUrl
指向主 URL 不是一个选项。
我已经验证我能够静态连接两个容器并传递消息,但是当我引入第三个容器(主容器)时,消息停止从 'Client-A' 流向 'Client-B'
大师tomee.xml:
<Resource
id="ra/activemq"
type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(tcp://127.0.0.1:61616,network:static:(tcp://127.0.0.1:61615,tcp://127.0.0.1:61617))/tomeeActiveMq?useJmx=true
ServerUrl = tcp://127.0.0.1:61616
</Resource>
客户端-A tomee.xml:
<Resource
id="ra/activemq"
type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(tcp://127.0.0.1:61615,network:static:tcp://127.0.0.1:61616)/server0?useJmx=true&persistent=false
ServerUrl = tcp://127.0.0.1:61615
</Resource>
客户端-B tomee.xml:
<Resource
id="ra/activemq"
type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(tcp://127.0.0.1:61617,network:static:tcp://127.0.0.1:61616)/server1?persistent=false&useJmx=true
ServerUrl = tcp://127.0.0.1:61617
</Resource>
我的 ActiveMQ 控制台显示两个客户端确实通过静态网络连接到主服务器:
这是根据 HawtIO 的代理布局图:
提前致谢。
对于 3+ 代理网络,您需要将 networkTTL
选项设置为大于 1 的值,这是默认值。 TTL 选项设置了一条消息可以到达的网络代理的最大限制。
因此,默认情况下,您可以在同一网络中通信 c1<->master 和 c2<->master,但不能通信 c1<->c2。
虽然不确定如何在资源适配器中通过 URI 传递该选项。