负载均衡的基础技术种类

来源:互联网 发布: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

0 0