前言:
当单台服务器的性能达到瓶颈时,就要考虑通过集群提升性能。集群的本质是通过多个机器分担,降低单个机器的压力,因此如何分配请求或连接数便显得格外重要。
分类概括:
目前业界使用广泛的负载均衡有DNS负载、硬件负载、软件负载。
DNS负载:
地区级别的负载,如北方用户接入北京机房,南方用户接入广州机房,本质是就近访问,减少时延。
优点:
简单。
缺点:
粒度大,机房级别的负载。
DNS缓存更新慢,对时延要求高的业务不适合。
负载在DNS提供商那里,自己无法掌控。
无法感知后台机器的状态,如某台机器因bug导致CPU100%,却仍然给它分配新的请求。
硬件负载:
目前广泛使用的有F5、A10。
优点:
性能优良,百万级别的。
功能齐全
缺点:
价格昂贵,土豪公司才买得起。
功能只可配置,不可定制化。
无法感知后台服务器的状态。
软件负载:
有LVS、Nginx。LVS是Linux操作系统层面4层负载,Nginx是应用层面7层负载。
优点:
性能还行,LVS是10万级别的,Nginx大概5万。
价格便宜,1万买台服务器便可应用。
通过插件增加功能,灵活。
后台服务器状态可感知,可由状态分配负载。
缺点:
性能一般,量级百万以上的需增加硬件负载。
举例:
三种负载配合使用达到应有的效果,举例如下:流量通过DNS分配到北京机房,再通过F5负载分配到北京集群1,最后通过Nginx分配到服务器1处理。
注:实际应用时不一定3种负载都会使用,如流量不到10万,只使用Nginx便可满足需求。
领取专属 10元无门槛券
私享最新 技术干货