CDN / Geo负载均衡

时间:2013-11-05 09:31:46

标签: ip-geolocation google-compute-engine

我有一项服务可以从谷歌计算引擎流式传输内容,如果用户来自欧洲或非洲,我想从欧洲的服务器流式传输,如果用户来自其他任何地方,我想从美国流式传输。或者甚至更好,如果服务可以定义为用户服务的最佳区域,那就太棒了!

这是使用谷歌计算引擎自动执行此操作的方法还是我必须手动构建解决方案?

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

使用Google Compute Engine中现有的功能,您仍需要采用其他一些技术(例如DNS服务或geo-ip Web服务器插件)。

如果您的内容是静态的并且您拥有相应的权利,则可以考虑将其置于Google云端存储(甚至是Youtube)上,它将根据位置确定最快捷的方式来提供客户端请求。

答案 1 :(得分:1)

一种选择是在Google App Engine中创建一个小型重定向服务。 App Engine HTTP请求使用从客户端的IP地址推断的位置信息进行注释:Request Headers

答案 2 :(得分:0)

实际上我找到了另一种更适合我的用例的解决方案。我把它放在这里以防其他人有同样的问题。

所以我的用例是通过websocket流式传输二进制数据(Jellynote.com上的音频播放器的声音字体)而不是根据用户IP将一个URL重定向到最近的服务器,我有一个URL池(现在2,一个在美国,一个在UE)。我创建了一个连接所有URL而不是池的连接,我只保留第一个响应(最近显然)。实际上非常简单。 :)

for host in @hosts
    connection = new WebSocket "ws://#{ host }"
    connection.onopen = (e) => #close every other connection