负载均衡高可用特性介绍
集群化部署
如下图所示,负载均衡系统中四层负载均衡(LVS)服务、七层负载均衡(Tengine)服务和控制系统等关键组件都采用集群化部署,以提高扩展性和可用性。
多可用区部署
负载均衡支持多可用区部署,以实现同地域下的跨机房容灾。通过该特性可实现当整个机房故障时,负载均衡能在较短时间内,将前端访问流量切换到同一地域下的其它可用区,以恢复服务能力。
相应负载均衡实例在所对应主备可用区后端都必须部署了实例,才能保障负载均衡实例主备切换后业务不中断。
会话保持
负载均衡会话保持可以使来自同一客户端的相关访问请求,分发到后端同一台ECS上进行数据交互和处理,以保障同一会话交互的连续性。
针对7层(HTTP协议和HTTPS协议)服务,负载均衡系统是基于Cookie的会话保持。负载均衡系统提供了两种Cookie处理方式:
植入Cookie:此种方法下,您只需要指定cookie的过期时间。客户端第一次访问时,负载均衡服务在返回请求中植入cookie(即在HTTP/HTTPS响应报文中插入SERVERID字串),下次客户端携带此cookie访问,负载均衡服务会将请求定向转发给之前记录到的ECS实例上。
重写Cookie:此种方式下,您可以根据需要指定HTTPS/HTTP响应中插入的cookie。您需要在后端ECS上维护该cookie的过期时间和生存时间。负载均衡服务发现用户自定义了cookie,将会对原来的cookie进行重写,下次客户端携带新的cookie访问,负载均衡服务会将请求定向转发给之前记录到的ECS实例上。
健康检查
负载均衡通过健康检查来避免后端ECS发生故障对负载均衡整体服务造成影响。开启健康检查功能后,当后端某台ECS健康检查出现问题后,负载均衡会将新请求转发到其它健康检查正常的ECS上,而当该ECS恢复正常运行时,负载均衡会将新请求自动恢复到该ECS上,以提供负载均衡整体服务的可用性。
负载均衡后端服务器必须至少配置2台及以上ECS,才能保障单台ECS异常时,前端请求能被分发到其他正常服务器上。
HTTPS协议支持
负载均衡支持创建HTTPS协议监听,以满足用户安全加密传输数据的需求,提高业务安全性和可用性。
负载均衡提供了对提供证书的集中管理和存储,并在前端请求时自动进行加解密处理。用户无需再将证书上传到后端ECS进行手工配置。用户上传到证书管理系统的私钥都会加密存储。
负载均衡高可用配置最佳实践
建议您在负载均衡使用和配置过程中采用如下措施以提高负载均衡业务可用性:
将负载均衡后端服务器部署在同一地域的不同可用区内,然后结合负载均衡多可用区特性实现本地容灾。
可用区访问会增加访问延迟,需要根据业务敏感性进行评估。
开启负载均衡后端ECS的健康检查,以便实现负载均衡对异常ECS自动进行隔离或恢复。
负载均衡后端最少配置两台及以上ECS。这样才能在其中某一台出现异常的时候,将前端访问调度到其它正常ECS,否则单台ECS故障,会导致负载均衡业务整体不可用。
在业务层面配置自动重联机制,从而在访问请求落到异常的负载均衡后端ECS时,客户端能够自动重联,以便负载均衡将新的请求调度到正常ECS,进而提高业务可用性。
业务层面超时时间必须在负载均衡当前各协议服务的超时时间之内。TCP监听: 900秒- UDP监听: 300秒
- HTTP监听: 60秒
- HTTPS监听: 60秒
负载均衡高可用常见架构
1. 本地容灾
如下图所示,负载均衡可以结合后端ECS及RDS、OSS等底层公共服务资源以实现业务的本地容灾。
方案说明:
负载均衡实例后端ECS同时分布在A、B可用区。
创建负载均衡实例的时候选择多可用区,设置可用区A为主可用区,可用区B为备可用区。
负载均衡后端ECS均为无状态ECS,业务数据存储在后端RDS、OSS等公共服务资源内。
正常情况下,客户端请求被调度到主负载均衡,进而分发到后端A、B可用区内的所有ECS上。
系统侦测到可用区A因故障无法访问时,自动将客户端请求调度到可用区B上的负载均衡备份实例上。
可用区B内的负载均衡和ECS继续为前端提供服务。
方案优点:
- 部署简单。
- 低成本。
- 同城容灾自动侦测、自动切换。
- 容灾切换业务无感知。
方案缺点:
无法解决异地容灾问题。
2. 异地容灾
负载均衡自身目前不支持异地容灾,需要结合外部智能DNS解析等手段来实现异地容灾。
如下图所示,您需要在不同地域购买负载均衡实例(本身已配置本地容灾)后,将最终业务访问域名配置智能DNS解析。最终根据客户端地理位置、链路质量等因素将访问请求动态解析到不同区域的负载均衡实例上。具体配置,参考
结合云解析实现跨地域负载均衡。
方案优点:
- 异地容灾,实现更高业务可用性。
- 容灾切换业务无感知。
方案缺点:
- 更高的成本。
- 需要结合外部应用联动。
- 需要了解业务分布、访问源分布等业务属性后配置定制策略。
3. 多级负载
如果有部分业务只在内部访问而同时又需要避免单点(比如数据库访问代理等),则可以部署多级负载均衡。
方案说明:
同时创建多个公网负载均衡实例和私网负载均衡实例。
公网负载均衡实例面向最终用户提供服务,私网负载均衡实例为后端服务提供高可用。
公网负载均衡实例后端ECS上,将后端服务的调用指向私网负载均衡实例。
方案优点:
- 低成本。
- 实现简单,业务逻辑清晰。
- 更高的安全性:私网负载均衡对公无法访问,保护内部敏感应用。同时,还可在私网实例上设置访问控制白名单,进一步提高安全性。
方案缺点:
多级转发会对性能有影响。