负载均衡的基础技术种类
来源:互联网 发布:ubuntu 打印机 编辑:程序博客网 时间:2024/05/20 14:43
负载均衡的基础技术种类
在李智慧大大的《大型网站技术架构核心原理与案例分析》这一本书的6.2节中有详细的介绍。
这里写这篇博文主要是为了加深点印象。
负载均衡的基础技术种类如下:
1、HTTP重定向的负载均衡
HTTP重定向服务器是一台普通的应用服务器,其唯一的功能就是根据用户的HTTP请求计算一台真实的Web服务器地址,并将该Web服务器地址写入HTTP重定向响应中(响应状态码302)返回给用户浏览器。
缺点:
1、浏览器需要两次请求服务器才能完成一次访问,性能较差
2、重定向服务器自身的处理能力有可能成为瓶颈,整个集群的伸缩性规模有限
3、使用HTTP302响应码重定向,有可能使搜索引擎判断为SEO作弊,降低搜索排名
2、DNS域名解析的负载均衡
DNS域名解析负载均衡,简单来理解就是:同一个域名配置了多个IP地址可供选择来提供服务。
例如,在上图中,在DNS服务器中配置多个A记录,如:www.mysite.com IN A 114.100.80.1、www.mysite.com IN A 114.100.80.2、www.mysite.com IN A 114.100.80.3.
每次域名解析请求都会根据负载均衡算法计算一个不同的IP地址返回,这样A记录中配置的多个服务器就构成一个集群,并可以实现负载均衡。上图中的浏览器请求解析域名www.mysite.com,DNS根据A记录和负载均衡算法计算得到一个IP地址114.100.80.3,并返回给浏览器;浏览器根据该IP地址,访问真是物理服务器114.100.80.3。
优点:将负载均衡的工作转交给DNS,省掉了网站管理维护负载均衡服务器的麻烦,同时许多DNS还支持基于地理位置的域名解析,即会将域名解析成距离用户地理位置最近的一个服务器地址,这样可加快用户访问速度,改善性能。
缺点:目前的DNS是多级解析,每一级DNS都可能缓存A记录,当下线某台服务器后,即使修改了DNS的A记录,要使其生效也需要较长的时间,这段时间,DNS依然会将域名解析到已经下线的服务器,导致用户访问失败;而且DNS负载均衡的控制权在域名服务商那里,网站无法对其做更多改善和更强大的管理。
3、反向代理的负载均衡(应用层负载均衡,或者叫7层负载均衡)
4、IP层的负载均衡(也叫3层负载均衡)
5、数据链路层(MAC)层的负载均衡(也叫2层负载均衡)
对于后面三种负载均衡方式,比较好理解。
简单来说, 七层就是基于URL等应用层信息的负载均衡;四层就是基于IP+端口的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求,然后再分配到真实的服务器;七层通过虚拟的URL或主机名接收请求,然后再分配到真实的服务器。
看到上面一段话,是不是感觉懂了,如果还没有理解,看看下面的几张图,不懂也会懂的。
上图中,浏览器访问请求的地址是反向代理服务器的地址114.100.80.10,反向代理服务器收到请求后,根据负载均衡算法计算得到一台真实物理服务器的地址10.0.0.3,并将请求转发给服务器。10.0.0.3处理完请求后将响应返回给反向代理服务器,反向代理服务器再将该响应返回给用户。
优点:和反向代理服务器功能集成在一起,部署简单
缺点:反向代理服务器是所有请求和响应的中转站,其性能可能会成为瓶颈
IP层负载均衡,就是在网络层通过修改请求目标地址进行负载均衡。
IP负载均衡在内核进程完成数据分发,较反向代理 负载均衡(在应用程序中分发数据)有更好的处理能力。但是由于所有请求响应都需要经过负载均衡服务器,集群的最大响应数据吞吐量不得不受制于负载均衡服务器 网卡带宽。对于提供下载服务或者视频服务等需要传输大量 数据的网站而言,难以满足需求。
数据链路层负载均衡是指在通信协议的数据 链路层修改mac地址进行负载均衡。这种方式的负载均衡是目前大型网站使用最广的一种负载均衡手段。
参考资料
1、http://kb.cnblogs.com/page/188170/
2、http://www.cnblogs.com/hsyzero/articles/5333503.html
- 负载均衡的基础技术种类
- 负载均衡算法的种类
- 网络游戏的负载均衡技术
- 集群的负载均衡技术
- 集群的负载均衡技术
- 集群的负载均衡技术
- 集群的负载均衡技术
- 集群的负载均衡技术
- 集群的负载均衡技术
- 集群的负载均衡技术
- 集群的负载均衡技术
- 集群的负载均衡技术
- 常用的负载均衡技术
- 集群的负载均衡技术
- 集群的负载均衡技术
- 负载均衡算法—负载均衡技术赖以生存的核心
- 基于linux的负载均衡技术
- 前言集群的负载均衡技术
- jsp页面中的$(param.xxx)
- 读取json格式为DataFrame(可转为.csv)
- JAVA环境的搭建
- acm里格式错误(1)!看这里今天get到新东西啦
- Android RxJava使用介绍(二) RxJava的操作符
- 负载均衡的基础技术种类
- 4568: [Scoi2016]幸运数字
- 高德地图在angularJS中的InfoWindow动态添加按钮
- 第7章 理解Linux文件权限
- linux shell 技巧
- POJ 3526 The Teacher’s Side of Math 已翻译
- Android RxJava使用介绍(三) RxJava的操作符
- Tomcat 迁移 至 weblogic部署war包,log4j问题 完整版
- 排序二叉树