负载均衡是大型架构的基石,下面我重点详解负载均衡@mikechen
文章来源:mikechen.cc负载均衡
负载均衡(Load Balancing):是一种将网络流量、或计算任务,分散到多个服务器或计算资源上的技术。
如下图所示:

它的核心目的是通过避免单个服务器过载,提高系统的可用性、可扩展性和性能。
负载均衡的原理
负载均衡,位于客户端和后端服务器之间,作为请求的“智能”分发中心。
当客户端发送请求时,负载均衡器会根据预设的算法和策略,决定将该请求转发给哪一个后端服务器。
这个过程对客户端是透明的,如下图所示:

负载均衡的原理,可以分为三个关键步骤:
接收请求: 负载均衡器作为所有请求的唯一入口,首先接收来自客户端的流量。分发决策: 负载均衡器根据其配置的负载均衡算法,决定将请求转发给哪一台后端服务器。请求转发与响应: 负载均衡器将请求发送给选定的服务器,服务器处理完请求后,将响应返回给负载均衡器,再由负载均衡器将响应返回给客户端。这个过程对客户端来说是透明的,客户端始终只和负载均衡器交互,而不知道背后有多少台服务器在提供服务。
负载均衡算法
负载均衡算法,主要分为如下5类:
1.轮循
轮询(Round Robin), 将请求按顺序循环地分配给每台服务器。
例如,服务器1、服务器2、服务器3...然后回到服务器1。

优点: 简单,公平。
缺点: 不考虑服务器性能差异,如果某台服务器性能较弱或负载较高,仍会被分配同等数量的请求。
2.加权轮循
轮询的升级版,为每台服务器设置一个权重值。
权重越高的服务器,被分配到请求的几率越大。
如下图所示:
能够更好地平衡不同性能服务器之间的负载。
3.最少连接
最少连接(Least Connections),将新的请求转发给当前连接数最少的服务器。
优点: 实时反映服务器负载情况,动态平衡负载。
缺点: 只考虑连接数,不考虑连接的质量(例如,一个连接是轻量级还是重量级的任务)。
4.哈希
根据请求的源IP地址进行哈希计算,将同一IP地址的请求始终转发到同一台服务器。

优点: 简单,实现了会话保持。
缺点: 如果大量请求来自同一个IP,可能导致该服务器负载过高。
负载均衡的分类
负载均衡主要分为:二层、三层、四层、以及七层负载均衡。
二层负载均衡(L2):这种方式基于 MAC 地址 进行流量分发。
三层负载均衡(L3):这种方式基于 IP 地址 进行分发。
四层(L4)负载均衡:基于 TCP/IP 协议的传输层。
它通过检查数据包的 IP 地址和端口号 来分发请求。
这是最常见的、也是最基础的负载均衡方式。
七层(L7)负载均衡:基于 HTTP/HTTPS 协议的应用层。
它能够解析请求的详细内容,如 URL、HTTP 头部、Cookie 等,从而实现更智能的路由。
常见实现:
硬件: F5 Big-IP, A10 Networks;软件: Nginx, HAProxy, Envoy, Apache HTTP Server;负载均衡应用场景
负载均衡技术可以应用于多种场景,包括但不限于以下几个方面:
高流量网站和API服务:对于电商平台、社交媒体或API网关等承载海量请求的应用,负载均衡能将请求分散到多台服务器。
微服务架构:在复杂的微服务体系中,负载均衡器负责将服务请求路由到正确的微服务实例,实现服务的弹性伸缩和故障隔离。
容灾和高可用:当某台服务器出现故障时,负载均衡器能自动将其从服务列表中移除,并将流量导向健康的服务器,实现无缝切换,确保服务不中断。
文章来源:mikechen.cc转载请注明来自海坡下载,本文标题:《Apache服务器如何实现负载均衡(负载均衡最全详解万字图文总结)》
京公网安备11000000000001号
京ICP备11000001号
还没有评论,来说两句吧...