在此博客中,我们将看到双工网络连接器如何工作。
在上一部分中,我们从broker-1和broker-2创建了一个网络连接器。 我们能够看到当代理2上有一个使用者使用队列“ foo.bar”时,代理1上的队列“ foo.bar”的消息如何转发到代理2上的队列“ foo.bar”。
让我们尝试通过将消息生成到broker-2的队列foo.bar中并从broker-1的队列“ foo.bar”中消费来进行相反的操作
Ashwinis-MacBook-Pro:example akuntamukkala$ ant producer -Durl=tcp://localhost:61626 -Dtopic=false -Ddurable=true -Dsubject=foo.bar -Dmax=100
Ashwinis-MacBook-Pro:example akuntamukkala$ ant consumer -Durl=tcp://localhost:61616 -Dtopic=false -Dsubject=foo.bar
在上一篇博客文章中,我们使100条消息入队/出队。 因此,现在排队的#messages显示为200。
如上所示,在Broker-2的foo.bar队列中有100条新消息入队,但是没有消费者,尽管从Broker-1到Broker-2的所有队列都有一个网络连接器。
原因是,除非指定为“双工”,否则网络连接器是从源到目标代理的单向连接。
让我们更改以下以黄色突出显示的属性
/Users/akuntamukkala/apache-activemq- 5.8.0/bridge-demo/broker-1/conf/activemq.xml
broker-1的配置文件。
<networkConnectors><networkConnector name="T:broker1->broker2" uri="static:(tcp://localhost:61626)" duplex="false" decreaseNetworkConsumerPriority="true" networkTTL="2" dynamicOnly="true"><excludedDestinations><queue physicalName=">" /></excludedDestinations></networkConnector><networkConnector name="Q:broker1->broker2" uri="static:(tcp://localhost:61626)" duplex="true" decreaseNetworkConsumerPriority="true" networkTTL="2" dynamicOnly="true"><excludedDestinations><topic physicalName=">" /></excludedDestinations></networkConnector></networkConnectors>
让我们重新启动代理,并使用jConsole连接到代理。
这是broker-1 jConsole MBean选项卡的屏幕截图,显示以下内容:
- Q:broker1-> broker2网络连接器是双工的。
- 现在有一个动态的生产者从broker-2进入broker-1,因为
问:broker1-> broker2网络连接器是“双工”。
这是broker-2 jConsole MBean标签的屏幕截图,其中显示以下内容:
- 从broker-2到broker-1的双工网络连接器
- 从broker-1到broker-2的两个动态消息生产者
- 请注意,“ Q:broker1-> broker2”网络连接器显示为activemq.xml中配置的双工
让我们看看这个动作
- 生产者100消息进入broker-2
Ashwinis-MacBook-Pro:example akuntamukkala$ ant producer -Durl=tcp://localhost:61626 -Dtopic=false -Ddurable=true -Dsubject=foo.bar -Dmax=100
broker-2中队列的屏幕快照:http:// localhost:9161 / admin / queues.jsp
- 在broker-1的foo.bar上创建使用者
Ashwinis-MacBook-Pro:example akuntamukkala$ ant consumer -Durl=tcp://localhost:61616 -Dtopic=false -Dsubject=foo.bar
以下来自broker-2的屏幕截图显示,所有100条消息已由使用者出队(动态转发到broker-1)。
http:// localhost:9161 / admin / queues.jsp
以下屏幕快照显示了Broker-2的foo.bar队列上此动态使用者的详细信息。
http:// localhost:9161 / admin / queueConsumers.jsp?JMSDestination = foo.bar
下面的屏幕快照显示了我们在步骤2中创建的使用者已成功使用了从broker-2的foo.bar队列动态移动到broker-1的foo.bar队列的100条消息。
到此系列的第2部分结束,我们了解了双工网络连接器的工作方式。
一如既往地欢迎您提出意见。
请继续关注第3部分,我们将介绍本地/远程代理上的负载平衡消费者...
翻译自: https://www.javacodegeeks.com/2014/04/activemq-network-of-brokers-explained-part-2.html