• 浅谈负载均衡及其设备的均衡策略


    随着当今网络的不断增长,无论在企业网、园区网还是在广域网,业务量的发展都超出了过去的估计,企业对网络的依赖性越来越强。当企业为用户提供Web服务时,随着访问者数量的快速增加,网络服务器需要具备提供大量并发访问服务的能力。 其数据流量和计算强度之大,使得单一设备根本无法承担;另一方面,如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,也是迫切需要解决的问题。负载均衡机制就是在这种情况下产生的。
      
      负载均衡的发展史
      一、循环DNS
      最初,人们通过循环DNS来解决可扩展性问题。通过对DNS进行配置,将多个服务器的IP地址以循环方式返回,数据流量被初步分配给各个服务器。但是这种解决方案有几个不足之处:
      
      首先,循环DNS没有一种核实机制,以检查被分配的服务器是否在正常运行。用户可能被导向一个故障服务器或是正在维修不能提供服务的服务器。对于该用户来说,尽管其他服务器都在正常运行,但他所要访问的东西却没有踪影。
      
      其次,一旦DNS将特定服务器的IP地址返回给用户,该用户的浏览器就会将该地址存储在高速缓存区,以备将来使用。这个被存储起来的地址会产生几个方面的影响:该用户可能会试图重新访问那台服务器,但该服务器很可能已不在提供服务了;随着网络节点的增加而向DNS中不断增添服务器,于是流量分配就可能非常不均衡,旧服务器会比新服务器接收更多的流量。这是因为存储旧服务器IP地址的用户比存储新服务器IP地址的用户多。
      
      二、第一代负载均衡解决方案
      第一代负载均衡产品具有很好的可扩展性。这些产品弥补了循环DNS的一些缺点。它们只向最终用户发送一个IP地址,但将发往该地址的请求映射到多个服务器上。但是,第一代产品不能提供真正的高可用性。这些产品的设计理念是被动的,因此不会积极地对服务器可用性或服务器上的内容进行核实确认。事实上,它们通过实际流量来识别出某个服务器有没有响应。尽管提供了足够的负载均衡功能,但这些产品还是不能提供企业所需要的全天候运行功能。因此出现了第二代负载均衡解决方案。
      
      三、当今的负载均衡技术
      现在的负载均衡产品在本身的性能、可扩展性及高可用性等方面都有了质的飞跃。
      
      其中性能是我们在引入均衡方案时需要重点考虑的问题,但也是一个最难把握的问题。衡量性能时可将每秒钟通过网络的数据包数目做为一个参数,另一个参数是均衡方案中服务器群所能处理的最大并发连接数目,但是,假设一个均衡系统能处理百万计的并发连接数,可是却只能以每秒2个包的速率转发,这显然是没有任何作用的。现在的负载均衡产品在本身性能方面有了很大的提高。它不但可以提供足够并发连接数,而且对于SSL等服务给予了强大的支持。
      
      在对服务质量要求较高的站点,负载均衡解决方案应能为服务器集群提供完全的容错性和高可用性。负载均衡产品为用户提供了高可用性主要体现在,负载均衡设备自身出现故障时,负载均衡系统会自动切换到其他可用的设备上,因此具有良好的冗余性,提高了可靠性。
      
      运用负载均衡实例
      为了充分说明第二代负载均衡技术的高可用性,就必须首先了解引起站点故障的原因:
      1.服务器故障:服务器出现硬件或操作系统故障而不能使用。
      2.软件故障:尽管其他应用系统正常运行,但某个或某些应用停止了响应。
      3.内容故障:服务器和应用系统都能正常运行,但却不能做出响应,或响应内容不正确。
      4.流量过多:服务器的响应与负载量变化密切相关。在流量增长的过程中,服务器将及时对请求作出响应。然而当流量到达一个极限时,服务器就会停止所有响应。
      5.网络故障:如果服务器和外界的连接中断,也就无法进行访问了。这可能是路由器本身或路由配置错误造成的。
      
      在实际情况下,负载均衡设备的均衡策略主要有以下几种:
      
      1.轮循算法(Round Robin)
      每一次来自网络的请求轮流分配给内部中的每台服务器,从1至N然后重新开始。此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。
      
      2.比率算法(Ratio)
      按照管理员事先分配好的比率进行分配。
      
      3.响应速度算法(Response Time)
      负载均衡设备对内部各服务器发出一个探测请求(例如Ping),然后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求。此种均衡算法能较好地反映服务器的当前运行状态,但最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间。
      
      4.最少连接算法(Least Connection)
      客户端的每一次请求服务在服务器停留的时间都可能会有较大的差异,随着工作时间的加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能会产生极大的不同,这样的结果并不会达到真正的负载均衡。最少连接数均衡算法对内部中有负载的每一台服务器都有一个数据记录,记录的内容是当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合长时间处理的请求服务,如FTP。
      
      在实际配置中,企业可以根据自身的需要来制定适合自己的均衡策略。
      
      总之,负载均衡是一种策略,它能让多台服务器或多条链路共同承担一些繁重的计算或应用服务,从而以较低成本消除网络瓶颈,提高网络的灵活性和可靠性。

  • 相关阅读:
    ChinaUnionPay、Visa和MasterCard信用卡号验证
    使用Aspose.Cells 过程中用过的知识(转)
    在网页中回车默认按钮
    求素数算法
    通过jQuery的attr修改onclick(转)
    子页面js代码改变父页面iframe的大小(转)
    考虑线程安全但效率不高的单例C++代码
    Linux信号量摧毁/销毁
    WCF、WPF、Silverlight和区别(转)
    不考虑线程安全的初级单例C++代码
  • 原文地址:https://www.cnblogs.com/yefengmeander/p/2887887.html
Copyright © 2020-2023  润新知