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

    [root@instance-3lm099to ~]# 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上。
  • 相关阅读:
    Cache Miss
    EmmyLua 注解标记总结
    关于浮点数计算时的精度问题 0.1+0.2不等于0.3
    Git-原理相关归纳-非入门
    读《非暴力沟通》
    Unity-图片压缩格式
    Git-大小写的坑
    将当前系统中的进程信息打印到文件中
    g++用法
    C++文本文件读写操作
  • 原文地址:https://www.cnblogs.com/shamo89/p/9320533.html
Copyright © 2020-2023  润新知