我需要在应用程序中使用一个基于逻辑PGM的多播地址,同时使这种应用程序能够“无缝地”跨越几个不同的地理位置运行(即想想美国/欧洲/澳大利亚)。
应用程序的吞吐量非常高(每天有数百万条消息),而且延迟要求很高,但却经常发送消息。由于一些外部的延迟限制,古典Atom酒吧将无法在这里工作。
我已经提出了几个选项来连接这些数据中心,但找不到最好的数据中心。 我考虑的选项是: 1)通过VPN转发组播消息(VPN可以处理如此大的负载)。 2)将所有多播消息转换为“包装消息”并通过AMQP转发它们。 3)编写专门的内部门,通过TCP将组播消息隧道传送到其他两个位置。 4)任何其他解决方案
我更喜欢选项1,因为它不需要来自开发人员的额外代码写入。但我担心它不会是可靠的连接。
是否有任何规则申请此类连接?
关于地理配置的最佳网络配置是针对上述约束的。
答案 0 :(得分:0)
只是想打个招呼:)
至于主题,我们对通过WAN进行多播的经验不多,但是,我的感觉是PGM + WAN +大量数据会导致重传风暴。 VPN不会让这个问题消失,因为所有澳大利亚接收器在遇到丢失的数据包时会将NACKS发送到欧洲等。
PGM规范确实允许用于消息传递的节点的树结构,因此理论上您可以在接收端放置单个节点,该节点将在本地重新多播数据。但是,我不确定这种功能是否可用于PGM的MS实现。或者,您可以在接收方放置具有PGM支持的Cisco路由器,以便为您处理此问题。
在任何情况下,我的偏好是将数据转换为TCP流,通过WAN传递,然后将其转换回另一端的PGM。必须编写一些代码,但不会出现令人讨厌的意外。
Martin S。
答案 1 :(得分:0)
该解决方案不涉及太多细节,涉及将隧道与BGP等标准路由协议以及VPN的开放技术相结合。我们使用RabbitMQ AMQP以pubsub样式传递消息,而无需物理多播。这意味着,如果您位于VPN-Cubed安全港,您可以在广域网上伪造多播,甚至跨域和防火墙。它的工作原理是因为它是“网络覆盖”,如技术说明中所述:http://blog.elasticserver.com/2008/12/vpn-cubed-technical-overview.html
我不打算真正为您提供具体的解决方案,但我希望这个答案让您有信心尝试其中一些方法。
干杯,亚历克西斯