集群服务与负载均衡
Posted 北九南二
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集群服务与负载均衡相关的知识,希望对你有一定的参考价值。
一、基本概念
Web集群是由多个同时运行同一个web应用的服务器组成,在外界看来就像一个服务器一样,这多台服务器共同来为客户提供更高性能的服务。集群更标准的定义是:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理,此单一系统为客户工作站提供高可靠性的服务。
负载均衡的任务是负责多个服务器之间(集群内)实现合理的任务分配,使这些服务器(集群)不会出现因某一台超负荷、而其他的服务器却没有充分发挥处理能力的情况。
负载均衡有两个方面的含义:
1)把大量的并发访问或数据流量分担到多台节点上分别处理,减少用户等待响应的时间;
2)单个高负载的运算分担到多台节点上做并行处理,每个节点设备处理结束后,将结果汇总,再返回给用户,使得信息系统处理能力可以得到大幅度提高;
二、集群技术
2.1 集群技术可以分为三类:
2.1.1 高性能性集群(HPC Cluster):以提高科学计算能力为目标的集群技术
2.1.2 高可用性集群(HA Cluster):为了使集群的整体服务尽可能可用,减少服务宕机时间为目的的集群技术。如果高可用性集群中的某节点发生了故障,这段时间内将由其他节点代替其工作。
HA方案主要有两种方式:
1)主-主(Active-Active)工作方式
最常用的集群模型,提供高可用性,最大程度利用硬件资源,每个节点可以在故障转移时临时接管另一个节点的工作。所有的服务在故障转移后仍保持可用,但性能通常会下降。
2)主-从(Active-Standby)工作方式
为了提供最大的可用性,以及对性能最小的影响,主-从工作方式需要一个在正常工作时处于备用状态的节点,主节点处理客户机的请求,而备用节点处于空闲状态,当主节点出现故障时,备用节点会接管主节点的工作,继续为客户机提供服务,并且不会有任何性能上影响。
2.1.3 高可扩展性集群
指带有负载均衡策略(算法)的服务器集群技术,使负载可以在计算机集群中尽可能平均分摊处理,需要均衡的可能是应用程序处理负载或是网络流量负载,该方案非常适合于运行同一组应用程序的节点。每个节点都可以处理一部分负载,并且可以在节点之间动态分 配负载, 以实现平衡。对于网络流量也是如此。通常,单个节点对于太大的网络流量无法迅速处理,这就需要将流量发送给在其它节点。还可以根据每个节点上不同的可用资 源或网络的特殊环境来进行优化。负载均衡在多节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡建立在现有网络结构上,提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又能避免单点故障。
三、负载均衡
后台的多个Web节点上面有相同的Web应用,用户的访问请求首先进入负载均衡分配节点(软件或硬件),由其根据负载均衡策略(算法)合理地分配给某个Web 应用节点。
Web负载均衡的作用是把请求均匀的分配给各个节点,是一种动态均衡,它是一种动态均衡,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把请求理分配出去。对于不同的应用环境(1电子商务网站,计算负荷大;2网络数据库应用,读写频繁,服务器存储子系统面临很大压力;3视频服务应用,数据传输量大,网络接口负担重压)使用的负载策略不同。
负载均衡算法主要有三种:轮询(Round-Robin)、最小连接数(Least Connections First)、和快速响应优先(Faster Response Precedence)
1)轮循算法,就是将来自网络的请求依次分配给集群中的节点进行处理。
2)最小连接数算法,就是为集群中的每台服务器设置一个记数器,记录每个服务器当前的连接数,负载均衡系统总是选择当前连接数最少的服务器分配任务。 这要比"轮循算法"好很多,因为在有些场合中,简单的轮循不能判断哪个节点的负载更低,也许新的工作又被分配给了一个已经很忙的服务器了。
3)快速响应优先算法,是根据群集中的节点的状态(CPU、内存等主要处理部分)来分配任务,目前没做到,未来发展方向
基于以上负载均衡算法的使用方式,细分为:
2)反向代理服务器:可以将请求转发给内部的服务器,使用这种加速模式显然可以提升静态网页的访问速度,也可以考虑使用代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。反向代理服务器如Ngix
以上是关于集群服务与负载均衡的主要内容,如果未能解决你的问题,请参考以下文章