负载均衡
负载均衡(Load Balancing),是指将流量、或计算,负载均匀分配到多个服务器、或资源上。
比如:在处理大量的用户请求时,负载均衡器可以分配流量到多个 Web 服务器上,以保证应用的高可用性和响应速度。
如下图所示:
图片
通过有效分配负载、提高系统的可用性、和性能,从而满足高可用、和高性能的业务需求。
比如:随着业务量的增加,可以通过增加更多的服务器来扩展系统,负载均衡器会自动将流量分配到新增加的服务器上,从而实现平滑的扩展。
以及,通过将流量或请求分配到多个服务器上,可以避免单一服务器故障导致的服务中断。
即使某些服务器出现故障,其他服务器仍可以继续处理请求。
负载均衡原理
负载均衡的基本原理:是使用一个负载均衡器(或称负载分配器),作为前端,将来自客户端的请求分配到后端的多个服务器上。
图片
负载均衡器通常位于网络流量的入口处,扮演着流量管理的角色。
整个负载流程,大致如下:
第一:请求接收
首先,客户端发起请求,负载均衡器接收到这些请求。
第二:流量分配
其次,负载均衡器根据设定的算法、或策略,将请求分配到多个后端服务器上。
第三:请求转发
再次,负载均衡器将客户端的请求转发给选定的后端服务器。
第四:响应返回
最后,后端服务器处理请求并生成响应,负载均衡器接收响应后,将其转发回客户端。
负载均衡算法
如果想更加深入的掌握负载均衡原理,还需要掌握负载均衡的算法。
比如:当客户端到达负载均衡后,通过”负载均衡的算法“,将请求分发到不同的服务器上。
图片
1. 轮询(Round Robin)
轮询:将请求按顺序依次分配给每个服务器,每个服务器依次接收请求,形成一个循环。
图片
比如:
服务器列表: A, B, C
请求顺序: R1, R2, R3, R4, R5
请求分配:
R1 - A;
R2 - B;
R3 - C;
R4 - A;
R5 - B;
适用场景:
适用于服务器性能相似的场景,因为它不考虑服务器的负载、或性能,只是简单地轮流分配请求。
优点:
实现简单,易于配置。
缺点:
不考虑服务器的实际负载情况,可能导致某些服务器过载,而其他服务器空闲。
2. 加权轮询
为每个服务器分配一个”权重“,权重值表示服务器处理请求的能力。