将多播传送到多个不同的地理位置

时间:2008-12-10 00:12:10

标签: geolocation messaging amqp multicast pgm-protocol

我需要在应用程序中使用一个基于逻辑PGM的多播地址,同时使这种应用程序能够“无缝地”跨越几个不同的地理位置运行(即想想美国/欧洲/澳大利亚)。

应用程序的吞吐量非常高(每天有数百万条消息),而且延迟要求很高,但却经常发送消息。由于一些外部的延迟限制,古典Atom酒吧将无法在这里工作。

我已经提出了几个选项来连接这些数据中心,但找不到最好的数据中心。 我考虑的选项是:   1)通过VPN转发组播消息(VPN可以处理如此大的负载)。   2)将所有多播消息转换为“包装消息”并通过AMQP转发它们。   3)编写专门的内部门,通过TCP将组播消息隧道传送到其他两个位置。   4)任何其他解决方案

我更喜欢选项1,因为它不需要来自开发人员的额外代码写入。但我担心它不会是可靠的连接。

是否有任何规则申请此类连接?

关于地理配置的最佳网络配置是针对上述约束的。

2 个答案:

答案 0 :(得分:0)

只是想打个招呼:)

至于主题,我们对通过WAN进行多播的经验不多,但是,我的感觉是PGM + WAN +大量数据会导致重传风暴。 VPN不会让这个问题消失,因为所有澳大利亚接收器在遇到丢失的数据包时会将NACKS发送到欧洲等。

PGM规范确实允许用于消息传递的节点的树结构,因此理论上您可以在接收端放置单个节点,该节点将在本地重新多播数据。但是,我不确定这种功能是否可用于PGM的MS实现。或者,您可以在接收方放置具有PGM支持的Cisco路由器,以便为您处理此问题。

在任何情况下,我的偏好是将数据转换为TCP流,通过WAN传递,然后将其转换回另一端的PGM。必须编写一些代码,但不会出现令人讨厌的意外。

Martin S。

答案 1 :(得分:0)

在CohesiveFT上,我们遇到了一个非常类似的问题,当我们设计我们的“VPN-Cubed”产品,用于将多个云连接到我们自己的防火墙后面的服务器,在一个VPN中。我们希望能够运行使用多播相互通信的应用程序,但是例如Amazon EC2不支持多播,原因如果您考虑整个数据中心可能存在网络风暴,那么这一点应该相当明显。我们还希望使用互联网在广域联合节点之间路由流量。

该解决方案不涉及太多细节,涉及将隧道与BGP等标准路由协议以及VPN的开放技术相结合。我们使用RabbitMQ AMQP以pubsub样式传递消息,而无需物理多播。这意味着,如果您位于VPN-Cubed安全港,您可以在广域网上伪造多播,甚至跨域和防火墙。它的工作原理是因为它是“网络覆盖”,如技术说明中所述:http://blog.elasticserver.com/2008/12/vpn-cubed-technical-overview.html

我不打算真正为您提供具体的解决方案,但我希望这个答案让您有信心尝试其中一些方法。

干杯,亚历克西斯

豫ICP备18024241号-1