文章目录
- 前言
- 一、负载均衡算法
- 二、负载均衡方法
前言
服务器集群的产生,首先需要解决的问题是如何将不同的访问请求分给不同的服务器来处理,这就需要使用到负载均衡。
一、负载均衡算法
1、轮询 优点:实现简单 缺点:没有考虑每台服务器的处理能力
2、加权轮询:在轮询的基础上,按照配置的权重将请求分发到每个服务器 优点:考虑了不同服务器的处理能力
3、最少连接:记录每个服务器正在处理的连接数,将新到的请求分发到最少连接的服务器上,这是最符合负载均衡定义的算法。
4、加权最少连接 优点:在最少连接的基础上,为每台服务器加上权值。算法为**( 活动连接数 * 256 + 非活动连接数 ) / 权重**,计算出来的值小的服务器优先被选择。
5、源地址散列:根据请求来源的IP地址进行Hash计算,得到相应的服务器。 优点:能实现同一个用户访问同一个服务器
二、负载均衡方法
1、HTTP重定向负载均衡:根据用户的请求计算一台真实的服务器地址,将该地址写入重定向响应中返回个用户,用户再根据该地址请求对应的服务器。
优点:简单
缺点:需要两次请求才能完成一次访问,性能较差;重定向服务器自身处理能力有可能称为瓶颈;使用重定向响应,有可能使搜索引擎判断为SEO作弊,降低搜索排名。实际这种方法不多见。
2、DNS域名解析负载均衡:利用DNS处理域名解析请求的同时进行负载均衡处理
优点:将负载均衡工作转交给DNS,省掉了维护负载均衡服务器的麻烦。
缺点:当下线某台服务器,即使修改了DNS的A记录,要使其生效也需要较长时间,这段时间内,DNS依然会将域名解析到已经下线的服务器,导致用户访问失败;而且DNS的负载均衡控制权在域名服务商那里,无法对其作出改善。
3、反向代理负载均衡:反向代理服务器缓存资源,改善性能的同时,可提供负载均衡的功能。由于服务器不直接对外提供访问,因此服务器不需要使用外部IP地址,而反向代理服务器需要配置双网卡和内部外部两套IP地址。
4、IP负载均衡:在网络层通过修改请求目标地址进行负载均衡,在内核进程完成数据分发。
优点:相比于反向代理负载均衡(在应用程序中完成数据分发)有更好的性能。
缺点:数据吞吐量受制于负载均衡服务器的网带宽。能不能让复杂均衡器只分发请求,而使响应数据从真实物理服务器直接返回给用户呢?于是就有了数据链路层负载均衡
5、数据链路层负载均衡(三角传输模式):配置所有真实物理服务器的虚拟IP和负载均衡服务器IP地址一致,负载均衡中不修改IP地址,只修改目的mac地址,避免了负载均衡服务器网卡带宽成为瓶颈。这是目前大型网站使用最广的一种负载均衡手段。