循序渐进讲解负载均衡vivoGateway(VGW)
作者:vivo 互联网运维团队- Duan Chengping 在大规模业务场景中,已经不可能通过单机提供业务,这就衍生出了负载均衡的需求。为了满足合适可靠的负载,本文将从简单的基础需求出发,一步步推进并解释如何建立负载均衡平台。 一、怎么保证你的业务可靠 想一个问题:假设你有10台服务器对外提供相同的服务,你如何保证这10台服务器能稳定处理外部请求? 这里可能有很多种解决方案,但本质上都是处理下述两个问题: ① 客户端的请求应该分配去哪一台服务器比较好? ② 万一其中某些服务器故障了,如何隔离掉故障服务器? 问题①处理不好,可能会导致10台服务器中的一部分服务器处于饥饿状态,没有被分配客户端请求或者是分配得很少;而另一部分则一直在处理大量的请求,导致不堪负重。 问题②处理不好,则CAP原则中的可用性(A)可能就没法保证,除非系统不需要A。 要解决上述问题,你必须实现一套控制器,能调度业务请求和管理业务服务器。很不幸的是,大多数情况下这个控制器往往就是整个系统的瓶颈。因为控制系统如果不深入到客户端上,就必须依赖一个集中式的决策机构,这个机构必然要承载所有客户端的请求。这时候你又得去考虑...