2

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

应用程序的吞吐量很大(每天有几百万条商业消息)和延迟要求很高,需要大量小但非常频繁地发送消息。由于某些外部延迟限制,Classic Atom pub 无法在此处工作。

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

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

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

对于上述限制,关于地理配置的最佳网络配置是什么。

4

2 回答 2

0

只是想打个招呼:)

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

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

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

马丁·S。

于 2008-12-29T21:12:55.173 回答
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

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

干杯,亚历克西斯

于 2009-01-10T10:31:32.230 回答