首页 > 代码库 > 理解负载均衡
理解负载均衡
负载均衡是一个针对许多节点的分布式负载。在网络行业,它通常作为一个web前端而被用来平衡各个服务器的http流量。为了这篇文章,我们关注Zenus负载均衡器在http和https流量上的负载均衡。
负载均衡器允许用户智能的分发流量到许多使用不同协议的多台服务器中的单个IP。这意味这负载处理可以被多个节点共享,而不是局限于在活动频繁时提高行单个服务器性能。这提高了你的web应用的可靠性,而且允许你为自己的应用创建冗余节点。如果服务器中一个节点失败,那么这些流量将以可编程的方式分发给其他节点而不用中断服务。
为什么及什么时候使用负载均衡
本质上,负载均衡解决的是超过一个节点的问题。你可以使用负载均衡来保证你的站点在流量高峰期或者随着你的网站越来越受欢迎时能保持正常运行。
使用负载均衡最常见的两种场景:
限制故障点 (故障转移)
通过限制有效故障点,可提高站点正常运行时间。如果你在两个或两个以上相同的节点之间做负载均衡,当集群中任何一个节点发生硬件或者软件故障时,流量就会被分配到其他节点以保证你的站点可以正常运行。付过你非常关心正常运行时间,在两个相同的节点之间做负载均衡可以使各个节点单独处理你的网站流量,这允许其中一个失败的情况下可以不用停用站点。
负载分配 流量增长超出了单台服务器的承受能力
随着你的网站越来越受欢迎,网站的流量将超出你最好的服务器的承受能力,而且需要比单台服务器更强大的配置。升级单台服务器,对双服务器规模(一台web服务器,一台数据库服务器)来说这只允许有限的负载增长。之后要做的事情就是通过负载均衡将多台服务器组织起来。
负载均衡方法
Zeus提供了许多方法来实现负载均衡。每种方法都有优缺点。
轮循调度(Round Robin)
使用轮循来实现负载均衡的话,负载均衡器将顺序性的将流量调度到每个节点。这种方法均匀的分配流量,但是并不考虑节点的当前负载和响应能力。
最小连接调度(Least Connect)
这种方法会考虑当前服务器和负载均衡器之间打开的连接数,负载均衡器分配流量到活跃连接数最少的服务器。这种方法更智能,但是还是没有考虑当前节点的负载和响应能力。
历史智能或感知算法(Historical Intelligence or the Perceptive Algorithm)
这种方式通过计算负载均衡器和每台服务器之间打开的连接数以及每个节点的响应时间两方面来决定将流量分配到哪个节点。这中方法最大的不同是,Zenus会逐渐将流量分配到服务器池中新增的服务器上。这种方式下如果你想快速提高网站的负载能力可能是个问题,但是当你有服务器发生故障时这种方式对故障服务器所承担的流量处理很有好处。
选择最合适的方式
对大多数站点来说最受欢迎的负载均衡方式是历史智能或感知算法。这种选择唯一不适用的情况是如果你的站点在处理和内存方面非常轻量级,而且所保存的历史数据已经超过了你的站点需求。Liguid web提供有Zeus和思科负载均衡都有支持,可供用户选择,你可以选择最适合你的负载均衡方式。
1. 本文由程序员学架构翻译
2. 本文译自Understanding Load Balancing | Liquid Web Knowledge Base
3. 转载请务必注明本文出自:程序员学架构(微信号:archleaner )
4. 更多文章请扫码:
理解负载均衡