什么是负载均衡
负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(Elastic Compute Service,简称 ECS) 的流量分发控制服务。通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
负载均衡服务通过设置虚拟服务地址,将位于同一地域的 ECS 服务器资源虚拟成一个高性能、高可用的应用服务池。根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中。
该服务地址都是由您购买的负载均衡实例独占的,更改配置策略不会导致负载均衡服务地址的变更。负载均衡服务地址已经正常解析到域名且对外提供服务,除非必要不要删除您创建的负载均衡服务,删除了负载均衡服务以后相应的服务配置和服务地址将会被释放掉,数据一旦删除,不可恢复。如果您重新创建负载均衡服务,系统会重新给您分配一个新的服务地址。
组成部分
负载均衡服务由以下三个部分组成:
-
负载均衡实例 (Load Balancer)
如果您想使用负载均衡服务,必须要通过购买负载均衡服务来创建一个负载均衡实例。一个负载均衡实例可以添加多个监听器和后端服务器。
详情参考 负载均衡实例。
-
监听器 (Listener)
在使用负载均衡服务前,您必须为负载均衡实例至少添加一个监听器,定义负载均衡策略和转发规则。
详情参考 监听概述。
-
后端服务器(Backend Server)
一组接收前端请求的 ECS 实例。您可以单独添加服务器到服务器池,也可以通过虚拟服务器组来管理后端服务器。
详情参考 后端服务器。
如下图所示,来自客户端的请求经过负载均衡实例后,根据配置的监听规则,将请求转发到对应的后端 ECS 实例上。
转发处理
您添加的每一个 ECS 实例,都是一个后端服务器。默认后端服务器是在实例维度上维护的,即负载均衡实例下的所有监听都只能够将流量转发到相同服务器组的相同端口上。负载均衡通过虚拟服务器组功能,实现监听维度的转发。您可以在监听维度上个性化定义服务器组,即实例下的不同监听可使用不同的后端服务器组,可满足域名和 URL 转发等个性化需求。
实例维度
负载均衡默认通过实例维度进行流量调度,其主要特点为:
-
同一监听,前端端口和后端端口可以不同。
-
同一监听,后端端口固定指向相应实例所有后端服务器上的相同端口。
监听维度
使用虚拟服务器组,通过监听维度进行流量调度,其主要特点为:
-
同一监听,前端端口和后端端口可以不同。
-
不同虚拟服务器组,可以包含相同或不同服务器。
-
同一虚拟服务器组内,后端 ECS 可以由不同端口提供服务。
-
同一监听,后端端口可以指向不同服务器的不同端口。
-
支持基于域名和 URL 配置个性化转发策略,更灵活地适配业务需求。
产品优势
-
高可用
采用全冗余设计,无单点,支持同城容灾,搭配 DNS 可实现跨地域容灾,可用性高达99.95%。根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。
-
低成本
与传统硬件负载均衡系统高投入相比,成本可下降60%。私网类型实例免费使用,无需一次性采购昂贵的负载均衡设备,无需运维投入。
-
安全
结合云盾提供防 DDoS 攻击能力,包括 CC、SYN flood 等 DDoS 攻击方式。
负载均衡采用集群部署,可实现会话同步,以消除服务器单点,提升冗余,保证服务稳定。阿里云当前提供4层(TCP协议和UDP协议)和7层(HTTP和HTTPS协议)的负载均衡服务。
-
4 层采用开源软件 LVS(Linux Virtual Server)+ keep alived 的方式实现负载均衡,并根据云计算需求对其进行了定制化。
-
7 层采用 Tengine 实现负载均衡。Tengine 是由淘宝网发起的 Web 服务器项目,它在 Nginx 的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。
如下图所示,各个地域的四层负载均衡实际上是由多台 LVS 机器部署成一个 LVS 集群来运行的,采用集群部署模式极大的保证了异常情况下负载均衡服务的可用性、稳定性与可扩展性。
LVS 集群内的每台 LVS 上都会话,通过组播报文同步到该集群内的其他 LV S机器上,从而实现 LVS 集群内部各台机器间的会话同步。如下图所示,在 LVS1 上面建立的会话A,当客户端向服务端传输3个数据包后,会开始同步到其他 LVS 机器上,图中实线表示现有的连接,图中虚线表示当 LVS1 出现故障或进行维护时,这部分流量会走到一台可以正常运行的机器 LVS2 上,这能够保证负载均衡集群支持热升级,机器故障和集群维护时最大程度对用户透明,不影响用户业务。
注意:对于连接未建立(三次握手未完成)时,或者已建立连接但未触发会话同步机制时,热升级不保证连接不中断,需要依靠客户端重新发起连接。
负载均衡主要可以应用于以下场景中:
场景一:应用于高访问量的业务
如果您的应用访问量很高,您可以通过配置监听规则将流量分发到不同的 ECS 实例上。此外,您可以使用会话保持功能将同一客户端的请求转发到同一台后端ECS上,提高访问效率。
场景二:横向扩张系统的服务能力
您可以根据业务发展的需要,通过随时添加和移除 ECS 实例来扩展应用系统的服务能力,适用于各种 Web 服务器和 App 服务器。
场景三:消除单点故障
您可以在负载均衡实例下添加多台 ECS实例,当其中一部分 ECS 发生故障后,负载均衡会自动屏蔽故障的 ECS 实例,将请求分发给正常运行的 ECS 实例,保证应用系统仍能正常工作。
场景四:同城容灾
您可以将负载均衡实例创建在支持多可用区的地域,提高应用系统容灾能力。阿里云负载均衡已在各地域部署了多可用区以实现同地域下的跨机房容灾。当主可用区出现机房故障或不可用时,负载均衡仍然有能力在非常短的时间内(大约30s中断)切换到另外一个备可用区的机房恢复服务能力;当主可用区恢复时,负载均衡同样会自动切换到主可用区的机房提供服务。
场景五:跨地域容灾
您可以在不同地域下部署负载均衡实例,并分别挂载相应地域内不同可用区内的 ECS。上层利用云解析做智能 DNS,将域名解析到不同地域的负载均衡实例服务地址下,可实现全局负载均衡。当某个地域出现不可用时,暂停对应解析即可实现所有用户访问不受影响。
来自阿里 https://help.aliyun.com/document_detail/27543.html?spm=5176.doc27544.6.544.TB78FU