最近更新时间:2023-01-09
什么是负载均衡
负载均衡(Load Balance)是一种集群的流量分发技术,将访问流量根据转发策略分发到后端多台服务器,消除单点故障,从而提高了业务处理能力和业务可靠性。
您可以在负载均衡服务中创建负载均衡,系统支持创建IPv4/IPv6模式的负载均衡,每个负载均衡具有一个虚拟IP,用于接收用户的访问请求。可以向负载均衡添加一个或多个监听器,监听器使用您配置的协议和端口检查来自客户端的连接请求,并根据您定义的转发策略将请求转发到一个后端服务器组里的服务器,进行实际业务处理。您还可以开启健康检查功能,对每个后端服务器组配置运行状况检查。当后端某台服务器健康检查出现异常时,负载均衡会自动将新的请求分发到其他健康检查正常的后端服务器上。
图-1 负载均衡工作示意图
相关概念
监听器
监听器有两个作用:一是通过指定的协议和端口监听来自客户端的连接请求;二是根据转发策略,如采用何种调度算法、是否开启会话保持(在会话的生命周期内,可以将同一客户端的请求转发到同一台后端服务器上)等,将请求转发到后端服务器组里的服务器。
监听器支持监听四层协议TCP、UDP,以及七层协议HTTP、HTTPS,每个监听器对应一种协议和端口。如果要监听多个协议或同一个协议的多个端口,可以创建多个监听器。
一个负载均衡需至少具备一个监听器。
后端服务器组/后端服务器
后端服务器组是接受负载均衡分发请求的一组具有相同特性的弹性云主机实例,一个后端服务器即为一个弹性云主机实例。流量分配策略以后端服务器组为单位生效。
负载均衡算法
调度算法是负载均衡向后端服务器分配流量的算法,根据不同的算法及后端服务器的权重设置,可以达到不同的效果。支持以下三种调度算法。
加权轮询算法:用权重表示服务器的处理性能,按照权重的高低以轮询方式依次将请求分配给各服务器;可以解决服务器间性能不一的情况。该算法根据新建连接数来调度,权值高的服务器先收到连接,权重值越高被轮询到的次数(概率)也越高,相同权值的服务器处理相同数目的连接数。适用于每个请求所占用的后端时间都基本相同的场景。
加权最小连接算法:最小连接是通过当前活跃的连接数来估计服务器负载情况的一种动态调度算法,而加权最小连接算法就是在最少连接数的基础上,根据服务器的不同处理能力,给每个服务器分配不同的权重,使其能够接受相应权值数的服务请求。适用于每个请求所占用的后端时间相差较大的场景。
源地址算法:将请求的源lP地址进行Hash运算,得到一个具体的数值,同时对后端服务器进行编号,按照运算结果将请求分发到对应编号的服务器上。这可以实现对不同源lP的访问进行负载分发,而同一个客户端lP的请求始终被派发至某个特定的服务器上。
健康检查
检查后端服务器的运行状况。当探测到服务器运行状况异常时,负载均衡会停止向其发送流量,并将流量转发给其他健康检查正常的服务器。可以指定被检查的协议。
检查原理为:在到达间隔时间时,通过发送Ping、尝试连接或者发送请求来探测后端服务器的运行状况。如果在超时时间内未收到服务器的回应,则尝试重复发送;到达重复次数后仍未收到回应,
则认为该服务器运行异常,负载均衡会停止向其发送流量,自动将新的请求分发到其他健康检查正常的后端服务器上。当该服务器恢复正常运行时,负载均衡会将其自动恢复到负载均衡服务中。
会话持久化
会话持久化(同会话保持)是负载均衡中的可以识别客户端与服务器之间交互过程关联性的机制。通过该机制,负载均衡能够持续将一系列相关联的访问请求分配到同一台后端服务器上,使得同一个用户短期内发送的请求由同一个弹性云主机处理,从而避免短期多次在不同服务器上登录的麻烦。
会话保持的类型:
源lP地址:即来自同一lP地址的访问请求会转发到同一台后端服务器上进行处理。
HTTP cookie:负载均衡器会根据客户端第一个请求生成一个cookie,后续所有包含这个cookie值的请求都会由同一个后端服务器处理。
应用程序cookie:该选项依赖于后端应用。后端应用生成一个cookie值,后续所有包含这个cookie值的请求都会由同一个后端服务器处理。
四层协议和七层协议支持基于源lP地址(SOURCE_lP)的简单会话保持。
HTTP协议支持基于HTTP cookie(HTTP_COOKIE)和应用程序cookie(APP_COOKIE)的会话保持。
功能价值
保证业务连续性
通过负载均衡丰富的健康检测算法,可以从网络层、应用层全方位地探测、检查服务器和链路的运行状态,自动隔离异常的弹性云主机实例,避免单点故障而导致业务中断情况。
提升业务流畅性
基于调度算法将流量均匀、合理地分发到健康的弹性云主机上,避免单台云主机负载过高而带来业务响应延迟,从而提升应用系统访问的流畅度和容错能力。
弹性伸缩
根据业务需求的变化,建立策略来自动调整弹性云主机的数量。可以根据应用的特点组合不同监控指标,来制定灵活的伸缩策略;通过弹性伸缩灵活伸缩后端服务器,支持后端服务器的弹性自动扩容和缩减,用户只需关心业务,不用关心资源瓶颈。
高可靠性
负载均衡支持双机热备结构,通过虚拟IP接收访问流量;当主用设备故障时,可无缝切换到备用设备,避免负载均衡分发调度工作中断,保证了后端服务器仍然正常接收并处理负载均衡调度分配后的业务请求。
应用场景
业务分发
应对高访问量业务,可以通过配置负载均衡转发算法将流量分发到不同的服务器上,也可以使用会话保持功能将同一客户端的请求转发到同一台后端服务器,提高访问效率。当其中某台后端服务器发生故障后,负载均衡会自动屏蔽故障的服务器,将请求分发给正常运行的服务器,保证应用系统高可用性。
DRX动态伸缩
应对业务系统对IT资源的需求波动较大的业务。有些业务的波动幅度很大,其峰值访问量甚至会超出正常访问量的好几倍。针对该类业务可以配置DRX动态资源伸缩,其工作过程是这样的:在当用户某项正在运行的业务面临突发访问流量时,云平台能够监测到业务所在弹性云主机性能不足,然后快速复制出指定数量的云主机并将它们加入到服务器组中;当访问高峰过后,平台能够动态地收缩、删除或者关闭过剩的弹性云主机,从而实现计算资源随需而动。
与其他云服务的关系
负载均衡与其他云服务依赖关系如表所述,请提前创建相应的云服务。
表-1 负载均衡与其他云服务的关系
云服务 | 描述 |
虚拟专有云(VPC) | 每个负载均衡都要处于VPC的某个子网中,配置的虚拟IP需要从VPC子网中分配,负载均衡实例与VPC中的资源互通。 |
弹性云主机 | 负载均衡的后端服务器,接收并处理负载均衡调度分配后的业务请求。 |
弹性公网IP(EIP) | 负载均衡的公网IP地址,如需在公网访问负载均衡,需为负载均衡分配弹性公网IP地址。 |