分布式负载转发

时间:2014-04-19 15:05:37

标签: routing go distributed

我正在尝试设计一个将部署在AWS不同地区的分布式应用程序。我们的想法是,用户越接近部署区域,延迟就越低。

我的问题是,当目标收件人位于区域B时,是否存在从区域A到区域B的可靠转发请求的任何纸张,设计模式或算法。这意味着区域A中的用户将只触发请求,但实际的交易将是从区域B中的用户到部署在那里的应用程序。

因此有效载荷将被路由,其余的处理将在收件人的结束时进行。

希望我有意义,但如果它有助于思考一个例子,我想到的就是录音。它不是将流媒体从区域A引导到B,而是首先复制到区域B,然后从那里流到用户。

1 个答案:

答案 0 :(得分:1)

  1. 如果您要使用地理位置(我认为AWS支持它),发生这种情况的可能性非常低。

  2. 为什么不使用http重定向?或者如果没有,一个简单的http代理。 Go的http库可以很容易地完成。

  3. 如果您负担得起,我会跨数据区域复制数据以使其对称,这样,如果一个数据中心出现故障,您可以通过geo-dns将用户路由到任何其他数据中心,任何服务中断或数据丢失。

  4. 您可以将Cassnandra与多个数据中心复制策略一起使用,并且每个AWS边缘上的写入都会自动复制到其他AWS边缘。它可能会导致它们之间的流量很大,但它会起作用。