华为云弹性负载均衡ELB架构与工作原理剖析
在云上业务的实际运营中,流量洪峰是每个在线系统都无法回避的挑战。无论是电商大促、在线教育,还是企业级SaaS服务,当海量请求同时涌入时,单台服务器的处理能力必然成为瓶颈。如果所有流量都压向一台服务器,不仅响应变慢,一旦这台服务器宕机,整个服务就会彻底中断。
华为云弹性负载均衡(Elastic Load Balance,简称ELB)正是为解决这一问题而设计的核心网络服务。它将访问流量根据分配策略分发到后端多台服务器,通过流量分发扩展应用系统的对外服务能力,同时通过消除单点故障提升应用系统的可用性。本文将从其核心组件、工作原理、四层七层转发机制、调度算法及高可用设计五个维度,剖析这项服务背后的技术原理。
一、核心组件
弹性负载均衡服务主要由三个核心部分组成:
负载均衡器:接受来自客户端的传入流量,并将请求转发到一个或多个可用区中的后端服务器。它是整个流量分发体系的总入口。
监听器:可以向弹性负载均衡器添加一个或多个监听器。监听器使用配置的协议和端口检查来自客户端的连接请求,并根据定义的分配策略和转发策略将请求转发到后端服务器组。监听器支持TCP、UDP、HTTP、HTTPS四种协议。
后端服务器组:是一个或多个后端服务器的逻辑集合,用于将客户端的流量转发到后端服务器,满足同时处理海量并发业务的需求。后端服务器可以是云服务器实例、辅助弹性网卡或IP地址。
二、工作原理
ELB的整体工作流程可以概括为五个步骤:
客户端发起请求后,负载均衡器中的监听器接收与配置的协议和端口匹配的请求。随后,监听器根据配置将请求转发至相应的后端服务器组。如果配置了转发策略,监听器会评估传入的请求是否匹配策略——匹配成功后请求将按照相应的转发动作进行转发。最终,后端服务器组中健康检查正常的后端服务器根据分配策略和路由规则接收流量,处理完成后返回客户端。
请求的流量分发方式取决于后端服务器组配置的分配策略类型。如果监听器使用HTTP或HTTPS协议,请求的路由方式还取决于监听器配置的转发策略。
三、四层转发与七层转发的区别
ELB同时支持四层协议(TCP/UDP)和七层协议(HTTP/HTTPS)的负载均衡。两者在工作机制上有本质差异:
四层负载均衡:监听器收到访问请求后,将请求直接转发给后端服务器。转发过程仅修改报文中的目标IP地址和源IP地址,将目标地址改为后端云服务器的IP地址,源地址改为负载均衡器的IP地址。四层协议连接的建立——即TCP三次握手——是客户端和后端服务器直接完成的,负载均衡只进行数据转发。
七层负载均衡:也称为“内容交换”。监听器收到访问请求后,需要识别HTTP/HTTPS协议报文头中的相关字段再进行转发。监听器先代理后端服务器和客户端建立连接(三次握手),接收客户端发送的包含应用层内容的报文,然后根据报文中的特定字段和流量分配策略判断需要转发的后端服务器。此场景中,负载均衡类似一个代理服务器,分别和客户端以及后端服务器建立连接。
从底层转发路径来看,四层转发经过LVS集群直接分发到后端服务器,而七层转发则需要经过LVS后再到Nginx集群进行二次分发。
四、调度算法
ELB支持多种负载均衡算法,以适应不同的业务场景:
加权轮询算法:根据后端服务器的权重,按顺序依次将请求分发给不同的服务器。权重越大被分配的概率越高,相同权重的服务器处理相同数量的连接数。该算法常用于短连接服务,如HTTP等。
加权最少连接算法:最少连接是通过当前活跃的连接数来评估服务器负载情况的动态调度算法。加权最少连接在最少连接数的基础上,根据服务器的不同处理能力分配不同权重。常用于长连接服务,如数据库连接等。
源IP算法:将请求的源IP地址进行一致性哈希运算,得到一个数值,同时对后端服务器进行编号,按照运算结果将请求分发到对应编号的服务器。这使得同一客户端IP的请求始终被派发至特定的服务器,适合无Cookie功能的TCP协议场景。
连接ID算法:针对QUIC协议应用设计,利用报文的连接ID字段进行哈希运算,实现相同连接ID流量的定向分发。该算法仅独享型ELB支持,适配云原生等新型业务场景。
五、健康检查与高可用机制
ELB会定期对后端服务器进行健康探测,支持TCP、HTTP、HTTPS等多种探测方式。以TCP健康检查为例,ELB节点向后端服务器发送TCP SYN报文;后端服务器收到后,如果相应端口已被正常监听,则返回SYN+ACK报文。对于七层健康检查,ELB节点会发出加密的HTTP GET请求,将返回的HTTP状态码与预置状态码进行对比来判断健康状态。
当检测到异常节点时,ELB会立即将其从后端服务器组中移除,流量自动路由到正常节点。同时,ELB采用全冗余设计、集群化部署,支持跨可用区的流量分发。不同可用区的负载均衡实例间采用多活模式,客户端请求就近分配到同可用区的实例。即使某个可用区发生网络故障,流量也能自动切换到其他正常可用区继续提供服务。
六、独享型与共享型
ELB提供独享型和共享型两种实例类型。独享型负载均衡实例资源独享,性能不受其它实例影响,可根据业务需要选择不同规格;共享型负载均衡属于集群部署,实例资源共享,性能会受其它实例影响,不支持选择规格。
总结
华为云弹性负载均衡通过“负载均衡器加监听器加后端服务器组”的三层架构,配合四层七层双栈转发能力、多种智能调度算法以及全冗余高可用设计,实现了大规模流量下的稳定分发与故障自愈。对于流量存在明显波动或需要高可用保障的业务场景,合理配置ELB是构建可靠云上架构的基础环节。理解其背后的工作原理,有助于在实际架构设计中做出更精准的选型和配置决策。
- 点赞
- 收藏
- 关注作者
评论(0)