CDN/地理负载均衡

Posted

技术标签:

【中文标题】CDN/地理负载均衡【英文标题】:CDN / Geo loadbalancing 【发布时间】:2013-11-05 09:31:46 【问题描述】:

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

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

感谢您的帮助!

【问题讨论】:

【参考方案1】:

使用 Google Compute Engine 中当前可用的功能,您仍然需要借助一些额外的技术(例如 DNS 服务或 geo-ip 网络服务器插件)。

如果您的内容是静态的并且您拥有权利,您可以考虑将其放在 Google Cloud Storage(甚至 Youtube)上,它会根据位置找出处理客户请求的最快方式。

【讨论】:

我的内容不是静态的,也不是视频。所以我想我会尝试 Brian Dorsey 解释的技术。谢谢!【参考方案2】:

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

【讨论】:

【参考方案3】:

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

所以我的用例是通过 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

【讨论】:

以上是关于CDN/地理负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

《从入门到精通云服务器》第七讲—负载均衡和CDN技术

上亿用户量负载均衡架构解析

全局负载均衡(GSLB)和内容分发网络(CDN)原理及实战

运维必学:全局负载均衡与CDN内容分发

cdn的内容路由技术

全局负载均衡CDN内容分发的原理与实践