vlambda博客
学习文章列表

【知识共享】软件负载均衡知多少

1.  软件负载均衡概述

软件负载均衡默认检查云服务器池中的实例健康状态,自动隔离异常状态的实例,消除了单台实例的单点故障,提高了应用的整体服务能力。

2.  软件负载均衡的优势

高可用:采用全冗余设计,无单点,支持同城容灾。搭配DNS可实现跨地域容灾,可用性高达99.95%。根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。

可扩展:根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。

低成本:与传统硬件负载均衡系统高投入相比,成本可下降60%。

3.  软件负载均衡高可用设计

软件负载均衡实例采用集群部署,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。其中四层负载均衡通过LVS(Linux Virtual Server)+ keepalived的方式实现,七层负载均衡通过Tengine(客户端网站发起的Web服务器项目,在Nginx的基础上,针对有大访问量的网站需求进行了优化)实现。

来自公网的请求通过等价多路径路由(ECMP)到达LVS集群,LVS集群内的每台LVS通过组播报文将会话同步到该集群内的其它LVS机器上,从而实现LVS集群内各台机器间的会话同步。同时,LVS集群会对Tengine集群进行健康检查,将异常机器从Tengine集群移除,保证七层负载均衡的可用性。

4.  软件负载均衡应用场景

应用于高访问量的业务

应用访问量很高时,可以通过配置监听规则将流量分发到不同的实例上。此外,可以使用会话保持功能将同一客户端的请求转发到同一台后端实例,提高访问效率。

扩展应用程序

根据业务发展的需要,支持随时添加和移除实例来扩展应用系统的服务能力,适用于各种Web服务器和App服务器。

消除单点故障

在软件负载均衡实例下添加多台实例。当其中一部分实例发生故障后,软件负载均衡会自动屏蔽故障的实例,将请求分发给正常运行的实例,保证应用系统仍能正常工作。

同城容灾

在软件负载均衡实例下绑定不同机房的实例。正常情况下,用户访问流量将同时转至主、备机房内的实例;当机房A发生故障时,用户访问流量将只转发至备机房内的实例。此种部署可以避免因为单个机房的故障而导致对外服务的不可用。