我的情况相当简单,我想这也是经常遇到的情况。我有几个项目,它们看起来都差不多 - 一个项目包括:
- 静态内容服务器 - 有几个不错的 CDN 解决方案可以解决这个问题
- 前端 HTTP 服务器 - 负责接收传入的请求,将其分发到后端服务器,获取答案并将其发回给用户
- 后端 HTTP 服务器 - 可扩展,并在全球范围内合理分布
- 数据库服务器 / NoSQL 服务器 / 任何存储数据的地方
这里的问题是(2)——前端服务器。我们使用多种技术来提供前端的容错和负载平衡,即:
- DNS 循环和 DNS 区域切换 - 并非如此那擅长负载平衡,非常故障后恢复缓慢(即使 TTL 为 1 分钟,DNS 区域的切换实际上也至少需要 15-20 分钟)
- BGP 切换 - 相当昂贵,需要大量的组织工作(即获取至少 /23 的 IP 地址块),在 2 条以上路径之间切换并不实际
- BGP 任播——基本上也相当昂贵且复杂
- 使用路由器上的 VRRP/CARP 在同一个数据中心的服务器之间切换 - 最可行的替代方案,但由于单个数据中心是 SPoF,因此实际上并不具有容错能力
回想起来,我以为必须为这个问题提供一个现成的 SaaS 解决方案。我梦想我们的下一个项目是这样做的:
- 创建后端,在全球范围内部署它们,并准备好它们的 IP
- 购买域名
- 注册一个外部服务,它将:
- 为我提供我将指向我的域名的 IP
- 确保有网络服务器始终监听这些 IP
- 监控我的后端
- 将请求转发到负载最少的工作后端(理想情况下,使用一些地理/网络延迟原则调整负载平衡策略)
- 从后端获取响应并将其发送回用户
我做了功课,发现有几种可用的负载平衡 SaaS 解决方案:
- 亚马逊 CloudFront- 但它并不是真正的前端货运代理而是一个前端内容服务(即基本上是一个 CDN 即服务)
- Amazon Elastic Load Balancer- 似乎是我所寻找的,但它不适用于非 EC2 托管的后端
- Azure似乎包含某种“负载均衡器”,但它也只适用于 Azure 托管的服务器
- RackSpace 云负载均衡器似乎也只适用于 RackSpace 托管的后端
- Storm Cloud 负载均衡器再次强调,似乎只适用于 Storm 托管的服务器
我想知道是否还有其他东西可以让我梦想中的部署成为现实?也许我错了,这样的事情并不存在?或者我只是搜索了一个错误的术语,而这种服务已经有另一个被广泛接受的术语了?
答案1
我会谷歌搜索“全局负载平衡”或“全局流量管理”。
市场上有一些常见厂商推出的产品……
阿卡迈http://www.akamai.com/html/solutions/gtm.html
F5http://www.f5.com/it-management/solutions/global-load-balancing/overview/