1

嗨,我正在评估 ActiveMQ 中的不同发现协议,但代理网络中的多播发现存在问题。

我已经设置了一个代理网络,其中 3 个 activeMQ 代理连接到一个多播组

<transportConnectors> <transportConnector name="default" uri="tcp://192.168.11.1:61616" discoveryUri="multicast://default?group=Bus"/> </transportConnectors>

我在不同的网络中有一个生产者 - 192.168.5.10,当我尝试创建与网络的连接时,我的生产者无法发现它

...
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("discovery:(multicast://default?group=Bus)");
...

但是当我尝试使用故障转移进行连接时,我能够成功创建连接并生成消息

...
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("failover:(tcp://192.168.11.1:61616,tcp://192.168.11.2:61616,tcp://192.168.11.3:61616)");
...

现在我的问题是如何使多播 uri 可以在全球范围内访问?我在这里提到了以下文档。但不足以让我理解。

如果有人可以对此有所了解,那将非常有帮助。提前致谢!

4

1 回答 1

1

在您的环境中使多播可访问是您的网络管理员的问题。他们需要启用 IGMP 路由才能使多播工作。

有关多播如何工作的概述,请参阅:http ://www.enterprisenetworkingplanet.com/netsp/article.php/3623181/Networking-101--Understanding-Multicast-Routing.htm

有关在 cisco 设备上配置 IGMP 的详细信息,请参阅http://www.cisco.com/c/en/us/td/docs/ios/12_2/ip/configuration/guide/fipr_c/1cfmulti.html

我很确定大多数路由器默认情况下都没有启用它。

于 2014-05-19T17:48:31.463 回答