常见的web负载均衡方法总结

Posted shamo89

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见的web负载均衡方法总结相关的知识,希望对你有一定的参考价值。

Web负载均衡的方法有很多,下面介绍几种常见的负载均衡方法。

1.用户手动选择方法

这是一种较为古老的方式。通过在主站首页入口提供不同线路、不同服务器连接的方式,来实现负载均衡。这种方式在一些提供下载的网站中比较常见。
技术分享图片

2.DNS轮询方式

大多域名注册商都支持对同一主机名添加多条A记录,这就是DNS轮询,DNS服务器将解析骑牛按照A记录的顺序,随机分配到不同的IP上,这样就完成了简单的负载均衡。
DNS轮询的成本非常低,在一些不重要的服务上,经常被使用。
下图为enom的域名Web管理界面,这里我们为api.bz域名添加一个二级域名ntp.api.bz(主机名为ntp),并为该域名添加多条A记录,让其DNS轮询7个IP,用7台服务器来做负载均衡。
技术分享图片

 添加完成后,我们用Linux下的dig命令查看ntp.api.bz域名的域名解析情况

[[email protected] ~]# dig ntp.api.bz

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> test1.testa.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33762
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 19

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;test1.testa.com.                 IN      A

;; ANSWER SECTION:
test1.testa.com.          600     IN      A       201.17.07.223

;; AUTHORITY SECTION:
testa.com.             172761  IN      NS      vip2.testdns.com.
testa.com.             172761  IN      NS      vip1.testdns.com.

;; ADDITIONAL SECTION:
vip1.testdns.com.        475     IN      A       101.19.44.101
vip1.testdns.com.        475     IN      A       110.215.1.1
vip1.testdns.com.        475     IN      A       110.215.28.103
vip1.testdns.com.        475     IN      A       110.215.208.11
vip1.testdns.com.        475     IN      A       13.1.102.10
vip1.testdns.com.        475     IN      A       42.66.22.111
vip1.testdns.com.        475     IN      A       101.15.10.103

;; Query time: 15 msec
;; SERVER: 192.168.0.88#13(192.168.0.2)
;; WHEN: Mon Jul 06 21:14:12 CST 2015
;; MSG SIZE  rcvd: 391
虽然DNS轮询的成本非常低,但是,DNS负载均衡存在两个明显的缺点

(1).可靠性低

假设一个域名DNS轮询多台服务器,如果其中的一台服务器发生故障,那么所有的访问该服务器的请求将不会有所回应,这是任何人都不愿意看到的。即使从DNS中去掉该服务器的IP,但在Internet上,各地区电信、网通等宽带接入商将众多的DNS存放在缓存中,以节省访问时间,DNS记录全部生效需要几个小时,甚至更久。所以,尽管DNS轮流在一定程度上解决了负载均衡问题,但是却存在可靠性不高的缺点。

(2).负载分配不均衡

DNS负载均衡采用的是最简单的轮询负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况DNS服务器是按照一定的层次结构组织的,本地DNS服务器会缓冲已解析的域名到IP地址的映射,这会导致使用该DNS服务器的用户在一段时间内访问的是同一台Web服务器,导致Web服务器间的负载不均衡。
此外,用户本地计算机也会缓存已解析的域名到IP地址的映射。当多个用户计算机都缓存了某域名到IP地址的映射时,而这些用户继续访问该域名下的网页,这是也会导致不同Web服务器件的负载分配不均衡。
负载不均衡可能导致的后果有:某几台服务器负荷很低,而另几台服务器负荷很高、处理缓慢;配置高的服务器分配到的请求少,而配置覅的服务器分配的请求多。
因此,DNS轮询方式仅适用于一些可靠性要求不高的服务器集群,例如:图片服务器群、纯静态网页服务器集群等。

3.四/七层负载均衡设备

常见的四/七层负载均衡设备:

1.硬件四/七层负载均衡交换机

常见的如F5 BIG-IP、Foundry等产品,采用F5的公司有:新浪、百度、雅虎、猫扑、搜狐、慧聪网等等。

2.软件四层负载均衡

代表有LVS(Linux Virtual Server).

3.软件七层负载均衡

大多基于HTTP反向代理,代表作有nginx

4.多线多地区智能DNS解析与混合负载均衡方式

以新浪首页为例,负载均衡同时用到了“多线多地区智能DNS解析、DNS轮询、四/七层负载均衡交换机”等技术。智能DNS解析能够根据用户本地设置的DNS服务器线路和地区,将对同一个域名请求解析到不同的IP上。

以上是关于常见的web负载均衡方法总结的主要内容,如果未能解决你的问题,请参考以下文章

Web负载均衡的几种方式

Web负载均衡实现方式(转)

web实现负载均衡的几种实现方式

亿级Web系统负载均衡几种实现方式

常见负载均衡算法分析

Nginx负载均衡的几种常见策略