我的情况相当简单,我想,这经常遇到。 我有几个项目都差不多 – 一个项目包括:
- 静态内容服务器 – 有一些体面的CDN解决scheme可以解决这个问题
- 前端HTTP服务器 – 应该接收传入的请求,将其分发到后端服务器,获取答案并将其发回给用户
- 后端HTTP服务器 – 可扩展,在全球范围内正确分布
- 数据库服务器/ NoSQL服务器/无论存储数据
这里的问题是(2) – 前端服务器。 我们正在使用多种技术来提供前端的容错和负载均衡,即:
- DNS轮询和DNS区域切换 – 在负载平衡方面并不那么好,在发生故障后恢复非常缓慢(即在1分钟的TTL时间内,DNS区域的切换至less需要15-20分钟)
- BGP交换 – 相当昂贵,需要大量的组织工作(即至less获得/ 23块IP地址),在两条以上的path之间切换并不实际
- BGP任播 – 基本上也相当昂贵和复杂
- 在路由器上使用VRRP / CARP切换同一数据中心内的服务器是最可行的select,但由于单个数据中心是SPoF,因此不能真正实现容错
想想看,我认为这个问题必须有一个现成的SaaS解决scheme。 我为下一个项目所梦想的就是这样做:
- 创build后端,将其部署到全球,准备好IP地址
- 买一个域名
- 注册一个外部服务,将:
- 向我提供我将指向我的域名的IP
- 有一个保证的Web服务器在这些IP(s)一直在监听
- 监视我的后端
- 将请求转发到负载最小的工作后端(理想情况下,使用某些地理/networking延迟原则调整负载平衡策略)
- 从后端获取响应并将其发回给用户
我做了功课,发现有几种可用的负载均衡SaaS解决scheme:
- Amazon CloudFront – 但它不是一个真正的前端转发器 ,而是一个前端服务内容(即基本上是一个CDN即服务)
- 亚马逊弹性负载平衡 – 似乎是我正在寻找,但它不适用于非EC2托pipe的后端
- Azure似乎包含某种“负载平衡器”,但它也只适用于Azure托pipe的服务器
- RackSpace云负载平衡器似乎也只适用于RackSpace托pipe的后端
- Storm Cloud负载均衡器似乎只能在Storm托pipe的服务器上运行
我想知道是否还有其他可能使我的梦想部署成为现实? 可能是我错了,这样的事情不存在? 或者我只是在寻找一个错误的术语,这个服务还有另一个被广泛接受的术语?