https://help.aliyun.com/document_detail/27539.html?spm=a2c4g.11186623.6.544.3c3c5779UdHKeO
概述
负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。
负载均衡通过设置虚拟服务地址,将添加的ECS实例虚拟成一个高性能、高可用的应用服务池,并根据转发规则,将来自客户端的请求分发给云服务器池中的ECS实例。
负载均衡默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS攻击的能力,增强了应用服务的防护能力。
组成部分
负载均衡由以下三个部分组成:
- 负载均衡实例 (Server Load Balancer instances)
一个负载均衡实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个负载均衡实例,并至少添加一个监听和两台ECS实例。
- 监听 (Listeners)
监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
- 后端服务器(Backend Servers)
一组接收前端请求的ECS实例。您可以单独添加ECS实例到服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。
产品优势
- 高可用
采用全冗余设计,无单点,支持同城容灾。搭配DNS可实现跨地域容灾,可用性高达99.95%。
根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。
- 可扩展
您可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。
- 低成本
与传统硬件负载均衡系统高投入相比,成本可下降60%。
- 安全
结合云盾,可提供5Gbps的防DDOS攻击能力。
负载均衡采用集群部署,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。
阿里云当前提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡服务。
- 四层采用开源软件LVS(Linux Virtual Server)+ keepalived的方式实现负载均衡,并根据云计算需求对其进行了个性化定制。
- 七层采用Tengine实现负载均衡。Tengine是由淘宝网发起的Web服务器项目,它在Nginx的基础上,针对有大访问量的网站需求,添加了很多高级功能和特性。
如下图所示,各个地域的四层负载均衡实际上是由多台LVS机器部署成一个LVS集群来运行的。采用集群部署模式极大地保证了异常情况下负载均衡服务的可用性、稳定性与可扩展性。
LVS集群内的每台LVS都会进行会话,通过组播报文同步到该集群内的其它LVS机器上,从而实现LVS集群内各台机器间的会话同步。如下图所示,当客户端向服务端传输三个数据包后,在LVS1上建立的会话A开始同步到其它LVS机器上。图中实线表示现有的连接,图中虚线表示当LVS1出现故障或进行维护时,这部分流量会走到一台可以正常运行的机器LVS2上。因而负载均衡集群支持热升级,并且在机器故障和集群维护时最大程度对用户透明,不影响用户业务。
说明 | |
对于连接未建立(三次握手未完成),或者已建立连接但未触发会话同步机制,热升级不保证连接不中断,需要依靠客户端重新发起连接。 |
功能概述
更新时间:2018-09-06 21:55:20
阿里云负载均衡提供4层和7层负载均衡,并提供健康检查、会话保持、域名转发等功能,保证后端服务的高可用。
调度算法 负载均衡支持轮询、加权轮询(WRR)、加权最小连接数(WLC)和一致性哈希(CH)调度算法。 | ✔ | ✔ |
健康检查 负载均衡会检查后端服务器的运行状况。当探测到后端服务器运行状况不佳时,会停止向其发送流量,然后将流量转发给其他正常运行的后端服务器。 | ✔ | ✔ |
会话保持 负载均衡提供会话保持功能。在会话的生命周期内,可以将同一客户端的请求转发到同一台后端服务器上。 | ✔ | ✔ |
访问控制 负载均衡支持添加黑名单和白名单,灵活控制客户端访问。 | ✔ | ✔ |
高可用 负载均衡可以将流量转发给多个可用区的后端服务器。并且,负载均衡已经在大部分地域支持了多可用区部署,当主可用区出现故障时,负载均衡可自动切换到备可用区上提供服务。 | ✔ | ✔ |
安全防护 结合云盾,可提供5Gbps的防DDoS攻击能力。 | ✔ | ✔ |
网络类型支持 负载均衡提供公网和私网类型的负载均衡服务。您可以创建一个私网类型的负载均衡实例来均衡专有网络内的流量,或创建一个公网负载均衡实例来均衡来自公网的流量。 | ✔ | ✔ |
监控 结合阿里云云监控服务,您可以查看负载均衡的连接数、流量等信息。 | ✔ | ✔ |
IPv6地址支持 负载均衡支持转发来自IPv6客户端的请求。 | ✔ | ✔ |
查看访问日志 结合阿里云日志服务,您可以通过分析负载均衡的访问日志了解客户端用户行为、客户端用户的地域分布,排查问题等。 | — | ✔ |
记录健康检查日志 负载均衡默认存储查三天内的健康检查日志。您可以通过开通OSS服务,将所有的健康检查日志存储到OSS中,分析后端服务器异常原因。 | ✔ | ✔ |
域名URL转发 负载均衡7层监听支持配置域名和URL转发规则,可以将来自不同域名和URL的请求转发到不同的后端服务器上。 | — | ✔ |
证书管理 针对HTTPS协议,提供统一的证书管理服务。证书无需上传到后端服务器,解密处理在负载均衡上进行,降低后端服务器的CPU开销。 | — | ✔ |
SNI支持 负载均衡HTTPS监听支持挂载多个证书,将来自不同访问域名的请求转发至不同的后端服务器组。 | — | ✔ |
重定向 负载均衡支持HTTP访问重定向至HTTPS。 | — | ✔ |
WS/WSS支持 WebSocket是HTML5一种新的协议,在客户端与服务器间提供双向通信渠道,能更好地节省服务器资源和带宽并达到实时通讯。 | — | ✔ |
HTTP/2支持 HTTP/2(Hypertext Transfer Protocol Version 2)是超文本传输协议的第二版,向下兼容HTTP1.X协议版本,同时带来性能的大幅提升。 | — | ✔ |
应用场景
更新时间:2018-08-28 19:39:03
负载均衡适用于高访问量的业务,提高应用程序的可用性和可靠性。
应用于高访问量的业务
如果您的应用访问量很高,您可以通过配置监听规则将流量分发到不同的ECS实例上。此外,您可以使用会话保持功能将同一客户端的请求转发到同一台后端ECS,提高访问效率。
扩展应用程序
您可以根据业务发展的需要,随时添加和移除ECS实例来扩展应用系统的服务能力,适用于各种Web服务器和App服务器。
消除单点故障
您可以在负载均衡实例下添加多台ECS实例。当其中一部分ECS实例发生故障后,负载均衡会自动屏蔽故障的ECS实例,将请求分发给正常运行的ECS实例,保证应用系统仍能正常工作。
同城容灾 (多可用区容灾)
为了提供更加稳定可靠的负载均衡服务,阿里云负载均衡已在各地域部署了多可用区以实现同地域容灾。当主可用区出现机房故障或不可用时,负载均衡仍然有能力在非常短的时间内(大约30s中断)切换到另外一个备可用区恢复服务能力;当主可用区恢复时,负载均衡同样会自动切换到主可用区提供服务。
使用负载均衡时,您可以将负载均衡实例部署在支持多可用区的地域以实现同城容灾。此外,建议您结合自身的应用需要,综合考虑后端服务器的部署。如果您的每个可用区均至少添加了一台ECS实例,那么此种部署模式下的负载均衡服务的效率是最高的。
如下图所示,在负载均衡实例下绑定不同可用区的ECS实例。正常情况下,用户访问流量将转发至主可用区内的ECS实例;当可用区A发生故障时,用户访问流量将转发至备可用区内的ECS实例。此种部署既可以避免因为单个可用区的故障而导致对外服务的不可用,也可以通过不同产品间可用区的选择来降低延迟。
如果您采取如下图所示的部署方案,即在负载均衡实例的主可用区下绑定多台ECS实例,而在备可用区没有任何ECS实例。当主可用区发生故障时会造成业务中断,因为备可用区没有ECS实例来接收请求。这样的部署方式很明显是以牺牲高可用性为代价来获取低延时。
跨地域容灾
您可以在不同地域下部署负载均衡实例,并分别挂载相应地域内不同可用区的ECS。上层利用云解析做智能DNS,将域名解析到不同地域的负载均衡实例服务地址下,可实现全局负载均衡。当某个地域出现不可用时,暂停对应解析即可实现所有用户访问不受影响。
基本概念
更新时间:2018-09-30 11:38:28
负载均衡服务 | 阿里云计算提供的一种网络负载均衡服务,结合阿里云提供的ECS服务,提供四层和七层负载均衡服务。 |
负载均衡实例 | 负载均衡实例是一个运行的负载均衡服务。要使用负载均衡服务,必须先创建一个负载均衡实例。 |
服务地址 | 系统为创建的负载均衡实例分配的服务IP地址。根据创建的负载均衡实例的类型,服务地址可能是公网IP也可能是私网IP。您可以将域名解析到公网IP地址提供对外服务。 |
监听 | 负载均衡服务监听规定了如何将请求转发给后端服务器。一个负载均衡实例至少添加一个监听。 |
后端服务器 | 处理负载均衡分发的前端请求的ECS实例。 |
默认服务器组 | 一组处理负载均衡分发的前端请求的ECS实例。 如果监听未配置指定的虚拟服务器组或主备服务器组,则将流量转发给默认服务器组中的后端服务器。 |
虚拟服务器组 | 一组处理负载均衡分发的前端请求的ECS实例。 不同的监听可以关联不同的虚拟服务器组,实现监听维度的请求转发。 |
主备服务器组 | 一个主备服务器组只包含两台ECS实例,一台作为主服务器,一台作为备服务器。当主服务器健康检查失败,系统会直接将流量切到备服务器。 |