负载均衡
负载均衡是部署有相同应用的服务器组成的一个集群,每次用户请求都可以发送到集群中任意一台服务器上去处理,任何一台服务器处理结果都是相同的。
负载均衡服务器是一个HTTP请求分发装置,能感知或配置集群的服务器数量,及时发现集群中上线、下线的服务器,并将请求分发到上线的服务器。
实现负载均衡有5种方式:
1、HTTP重定向负载均衡
2、DNS域名解析负载均衡
3、反向代理负载均衡
4、IP负载均衡
5、数据链路层负载均衡
HTTP重定向负载均衡
利用HTTP重定向协议实现负载均衡。
优点
1、简单。
缺点
1、需要请求两次服务器才能完成一次访问,性能较差。
2、HTTP302响应码重定向,可能会被搜索引擎判断为SEO作弊。
3、无法保证用户一直从主页进入站点,可能用户已收藏一个具体地址,这样调度就会被跳过。
DNS域名解析负载均衡
利用DNS处理域名解析请求的同时进行负载均衡处理的一种方案。
优点
1、省掉了网站管理维护负载均衡服务器。
2、为用户选择最近的服务器,提高访问速度。
缺点
1、DNS缓存,修改DNS可能会较长时间才生效。
2、控制权在域名服务商那里,网站能做的有限。
PS:大网站还是会使用DNS域名解析,作为第一级负载均衡。
反向代理负载均衡
利用反向代理服务器进行负载均衡。反向代理服务器核心工作是转发HTTP请求,它工作在HTTP层面,也就是TCP七层结构中的应用层(第七层),所以反向代理负载均衡也称为七层负载均衡。
优点
1、简单。
缺点
1、反向代理服务器作为请求中转站,性能可能会成瓶颈。
IP负载均衡
通过在网络层(第三层)修改请求目标地址进行负载均衡。
优点
1、IP负载均衡在内核进程完成数据分发,较反向代理负载均衡性能更优。
缺点
1、由于请求响应都需要经过负载均衡服务器,集群的最大响应数据吞吐量受制于负载均衡服务器的网卡带宽。
数据链路层负载均衡
在数据链路层(第二层)修改mac地址进行负载均衡。这种数据传输方式响应不再需要通过负载均衡服务器,而是直接响应给用户,避免负载均衡服务器网卡带宽成为瓶颈,这种负载均衡方式又称为直接路由方式(DR)。
PS:三角传输模式的链路层负载均衡是目前大型网站使用最广的一种负载均衡手段。
负载均衡算法
负载均衡服务器寻找一台可用服务器的算法有:
1、轮询(Round Robin, RR)
2、加权轮询(Weighted Round Robin, WRR)
3、随机
4、最少连接
5、源地址散列(Source Hashing)
参考文献
1、《构建高性能Web站点》
2、《大型网站技术架构》
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/architecture/6808.html