集群与负载均衡

转自http://network.51cto.com/art/201004/195925.htm

在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。(负载均衡

另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。(集群

不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。

所以,这时候我们就需要用到集群这一门技术了。

在进入集群系统架构探讨之前,先定义一些专门术语:

1.集群(Cluster):

一个宽泛的概念,既包括一组计算机合作处理同一任务或不同任务,又能提供服务器的替补功能。

是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。

集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。

2.负载均衡(LoadBalance):集群的任一单个节点都可以单独提供服务。根据当前节点负荷大小分担其它节点的任务,分摊压力

3.特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。

集群系统(Cluster)主要解决下面几个问题:

高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务

高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。

负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

 

目前比较常用的负载均衡技术主要有:

负载均衡技术1.基于DNS的负载均衡

通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。

 

负载均衡技术2.反向代理负载均衡(如Apache+JK2+Tomcat这种组合)

使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

负载均衡技术3.基于NAT的负载均衡技术(如LinuxVirtualServer,简称LVS)

网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。

 

 

 

===========================================================================

apache web服务器---静态解析:

侧重html静态文件的高性能处理能力,虽然能解析jsp,但性能低!

javaee 应用服务器(weblogic,jboss等)---动态解析:

侧重javaee 应用(servlet,jsp,ejb,webservice)的解析,虽然能解析html,但效率没有apache web服务器好!

前置机:

apache服务,默认监听80端口(浏览器中访问地址如果是80,则可以省略不写),负载分配任务。

客户端只面向apache服务器发起请求,具体由哪台服务器执行任务由JK_MOD组件来决定。

WORKER:

前置机后面部署多个同样的服务,由前置机根据每个worker当前的工作负荷/机器整体性能等因素来决定转发请求到某个worker。

------------------------------------------------------------------------------------------------

apache与tomcat的整合

将web服务器的优势(处理静态内容)与应用服务器的优势(处理动态内容)结合起来,优势互补

负载均衡(活路干不赢了,多找点工人来帮忙):

高并发请求时,通过多台部署了同样应用的服务器进行响应处理

当前任务将由哪台服务器处理,由web 服务器进行判断(咋个的活路少就给咋个干)

既能缓解服务器的压力,也能在最短时间内为客户端提供响应

提高系统对外服务的吞吐量

-------------------------------------------------------------------------------------------------

apache web服务器的使用

1.专门提供静态html的处理,遇到动态解析任务时自动将请求转到应用服务器处理;

2.使用MOD_JK转发任务到应用服务器时,会按某种算法找出当前负载较小的worker,然后由这个worker来处理任务。

猜你喜欢

转载自schy-hqh.iteye.com/blog/1930550
今日推荐