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域名的域名解析情况

[root@instance-3lm099to ~]# dig ntp.api.bz

; <<>> DiG 9.9.-RedHat-9.9.-.el7 <<>> test1.testa.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:
;; flags: qr rd ra; QUERY: , ANSWER: , AUTHORITY: , ADDITIONAL: ;; OPT PSEUDOSECTION:
; EDNS: version: , flags:; udp:
;; QUESTION SECTION:
;test1.testa.com. IN A ;; ANSWER SECTION:
test1.testa.com. IN A 201.17.07.223 ;; AUTHORITY SECTION:
testa.com. IN NS vip2.testdns.com.
testa.com. IN NS vip1.testdns.com. ;; ADDITIONAL SECTION:
vip1.testdns.com. IN A 101.19.44.101
vip1.testdns.com. IN A 110.215.1.1
vip1.testdns.com. IN A 110.215.28.103
vip1.testdns.com. IN A 110.215.208.11
vip1.testdns.com. IN A 13.1.102.10
vip1.testdns.com. IN A 42.66.22.111
vip1.testdns.com. IN A 101.15.10.103 ;; Query time: msec
;; SERVER: 192.168.0.88#(192.168.0.2)
;; WHEN: Mon Jul :: CST
;; MSG SIZE rcvd:
虽然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负载均衡方法总结的更多相关文章

  1. 常见的Web负载均衡方法

    用户手动选择 通过在主站首页入口提供不同线路,不同服务器链接的方式,来实现负载均衡.在一些提供下载业务的网站中比较常见,如:华军软件园. DNS轮询 大多域名注册商都支持对同一主机名添加多条A记录,这 ...

  2. Web负载均衡学习笔记之实现负载均衡的几种实现方式

    0x00 概要 负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是Web负载均衡.根 ...

  3. 亿级Web系统搭建 Web负载均衡的几种实现方式(阿里)

    我还写了两篇详细的 参考:六大Web负载均衡原理与实现 参考:LVS(Linus Virtual Server):三种IP负载均衡方式比较+另三种Web负载均衡方式 其中LVS.HAProxy可以工作 ...

  4. Web负载均衡的几种实现方式

    Web负载均衡的几种实现方式摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是 ...

  5. IIS Web负载均衡的几种方式

    Web负载均衡的几种实现方式 摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用 ...

  6. Web负载均衡的几种方式

    Web负载均衡的几种实现方式 摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用 ...

  7. web负载均衡

    在有些时候进行扩展是显而易见的,比如下载服务由于带宽不足而必须进行的扩展,但是,另一些时候,很多人一看到站点性能不尽如人意,就马上实施负载均衡等扩展手段,真的需要这样做吗?当然这个问题也只有他们自己能 ...

  8. 六大Web负载均衡原理与实现

    还有个姊妹篇也可以参考这个文章:LVS(Linus Virtual Server):三种负载均衡方式比较+另三种负载均衡方式, LVS 实现了负载均衡,NAT,DR,TUN zookeeper使用ZA ...

  9. web负载均衡整理

    参考:http://www.cnblogs.com/lovingprince/archive/2008/11/13/2166350.html http://www.cnblogs.com/loving ...

随机推荐

  1. (字符串)最长公共字串(Longest-Common-SubString,LCS)

    题目: 给定两个字符串X,Y,求二者最长的公共子串,例如X=[aaaba],Y=[abaa].二者的最长公共子串为[aba],长度为3. 子序列是不要求连续的,字串必须是连续的. 思路与代码: 1.简 ...

  2. Linux/Unix分配进程ID的方法以及源代码实现

    在Linux/Unix系统中.每一个进程都有一个非负整型表示的唯一进程ID.尽管是唯一的.可是进程的ID能够重用.当一个进程终止后,其进程ID就能够再次使用了. 大多数Linux/Unix系统採用延迟 ...

  3. eclipse在search的时候,通过search打开的页面会覆盖之前打开的页面

    eclipse在search的时候,通过search打开的页面会覆盖之前打开的页面,如果不想覆盖的话,可以这么设置: Window->Preferences->General->Se ...

  4. 微信小程序 - 调用腾讯地图插件

    1. 登录公众号平台 https://mp.weixin.qq.com/ 2. 设置->第三方服务->添加插件->输入插件名称->申请 3. 项目中使用 3.1 app.jso ...

  5. webpack 处理CSS

    1.安装插件 npm i style-loader css-loader --save-dev npm i postcss-loader --save-dev npm i autoprefixer - ...

  6. 在云主机或vps上用bzr拉OpenERP7.0代码

    前面的文章讲过了用bzr来参与OpenERP开发的过程,其中很重要的一步就是创建本地分支.我在阿里云上建server和web的分支都没有问题,就是addons分支搞了30几次都在中途被kill了. 今 ...

  7. NGINX原理 之 SLAB分配机制(转)

    1 引言 众所周知,操作系统使用伙伴系统管理内存,不仅会造成大量的内存碎片,同时处理效率也较低下.SLAB是一种内存管理机制,其拥有较高的处理效率,同时也有效的避免内存碎片的产生,其核心思想是预分配. ...

  8. Tomcat跨二级域配置

    内容转自:http://blog.csdn.net/luka2008/article/details/38385703/,请直接看原文,不过这篇“原文”也是转的... 1,Tomcat下 代码: im ...

  9. 学习Tkinter

    tutorial point这个网站教程很多,无所不包.还包括一堆在线IDE,值得收藏 一.第一个tkinter程序 import tkinter top = tkinter.Tk() # Code ...

  10. 为Github 托管项目的访问添加SSH keys

    为了便于访问远程仓库,各个协作者将自己的本地的项目内容推送到远程仓库中,使用 SSH keys 验证github的好处:不用每次提交代码时都输入用户名和密码. 如果SSH key没有添加到github ...