负载均衡集群学习笔记
一、负载均衡简介
负载均衡是一种将多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,可以单独对外提供服务而无需其他服务的辅助,这种机制可以通过不同的算法和策略平均分配任务到各个服务器上,从而避免单个服务器过载,提升整体系统的处理能力和可靠性。
二、常见的负载均衡方式
用户手动选择
优势:实现简单,只需展示所有节点即可。
劣势:负载均衡不均匀,可能出现某些节点压力过大,有些节点毫无压力。
DNS轮询均衡
优势:实现方式简单,用户无感知。
劣势:可靠性低,出问题修复慢;负载均衡不均匀,可能出现某些节点压力过大,有些节点毫无压力。
四层/七层负载均衡
优势:可靠性高,更新速度快,提供健康检查。
劣势:硬件实现需要购买专属硬件;软件实现需要自行配制部署。
区别:
四层负载均衡在TCP/UDP层面,将外部的IP地址映射到内部的多个IP地址中,每次请求使用其中的一个IP地址,从而实现负载均衡的目的。
七层负载均衡在HTTP协议层面,将用户请求进行分发。
硬件负载均衡与软件负载均衡
硬件负载均衡:通过硬件设备实现,性能效率高但成本较高。
软件负载均衡:通过软件实现,成本低但网络处理性能不如硬件。
三、常见算法
轮询算法
实现:将每个请求按时间顺序或排序顺序逐一分配到不同的后端节点上。
优势:实现简单。
劣势:无法平衡不同主机之间的性能差异。
加权轮询算法
实现:在基本的轮询策略上加入不同的权重,指定各个节点被轮询的几率。
优势:有效处理后端节点性能不同的问题。
IP Hash算法
实现:将客户端的IP使用特定的Hash算法定位到某一台后端服务器。
优势:同一个用户的请求始终在同一台服务器上处理,不存在连接保持的问题。
劣势:无法保证后端服务器之间的负载均衡,可能有些后端压力会较大,而有些压力较小。
四、拓展算法
Fair算法
实现:通过Nginx第三方模块fair来拓展负载均衡算法。
优势:根据Nginx后端的响应时间来判断负载情况,将请求分发给负载最轻的节点。
劣势:需要手动编译第三方模块。
URL Hash算法
实现:通过Nginx第三方模块url_hash来拓展负载均衡算法。
优势:在后端有缓存的情况下,可以提升缓存的利用率。
劣势:当节点出现异常时无法自动排除节点。
五、其他负载平衡
Nginx轮询负载均衡
Nginx最少连接数负载均衡
Nginx随机分配负载均衡
Nginx分路径轮询负载均衡
Nginx加权轮询负载均衡
Nginx IP hash负载均衡
Nginx TCP负载均衡
六、LVS(Linux Virtual Server)介绍
LVS基础概念
LVS是Linux Virtual Server的缩写,是一个虚拟服务器集群系统,由章文嵩博士成立,LVS提供了一个实现负载均衡的技术平台,通过它可以实现高性能、高可用的服务器群集。
LVS的工作模式
NAT模式:通过网络地址转换技术,将请求报文的目标地址转换为选定的后端服务器的IP地址。
DR模式:直接路由模式,调度器只接收客户发来的请求并将请求转发给后端服务器,后端服务器处理请求后直接把内容返回给客户。
TUN模式:IP隧道模式,调度器把请求的报文通过IP隧道转发到真实的服务器,真实服务器将响应处理后的数据直接返回给客户端。
FULLNAT模式:源地址和目标地址都会被调度器转换为VIP和对应服务器IP,处理完毕后再转换回来。
七、归纳
负载均衡技术在现代计算机网络中扮演着至关重要的角色,通过多种负载均衡方式和算法,可以有效地提高系统的性能和可靠性,无论是硬件还是软件实现,都有其适用的场景和优缺点,在实际使用中,应根据具体需求选择合适的负载均衡方案,以达到最佳的性能和效果。
小伙伴们,上文介绍了“负载均衡集群学习笔记”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1270612.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复