帮你了解负载均衡产品

转自:http://net.zdnet.com.cn/network_security_zone/2010/0507/1734171.shtml

帮你了解负载均衡产品

ZDNET网络频道时间:2010-05-07作者: | ZDNet网络频道
本文关键词:负载均衡 网络

负载均衡产品种类越来越多,那么基础的分类包括硬件和软件。那么随着网络的不断升级,我们的产品也随着不断地得到提升。那么,应用于各个领域的负载均衡产品已经不是只具有单一均衡功能的一个设备,而是想着多元化,多功能的融合进行发展。那么,我们就来详细说一说这其中的发展情况吧。具体的我们也来了解一下相关的产品。

1 硬件负载均衡产品

采用硬件来实现负载均衡速度较快,负载均衡硬件只负责对到来的请求在功能服务器集群之间根据一定的策略进行分发。目前比较著名的负载均衡硬件产品主要有:F5 Networks公司的Big-IP和3-DNS产品;Alteon公司的AD3/AD4产品;Cisco公司的Local Director等等。

2 类硬件负载均衡产品

与采用硬件实现负载均衡功能相类似,使用类硬件的软件系统也可以对客户端请求根据一定策略进行分发。

目前,比较常用的是在服务器上安装Linux操作系统,然后通过配置相应的软件来实现负载均衡功能,比如Turbo Linux上的TCS(Turbo Cluster Server),在红旗Linux上也有相应的产品。

3 软件负载均衡产品

3.1 Microsoft NLB

微软的NLB(Network Load Balance,网络负载均衡)技术能够在多个运行NLB软件的节点对进入系统的IP请求负载进行合理分配,可以为诸如Web服务器之类基于IP协议的应用提供可扩展性与可用性。

NLB底层软件是一种位于NIC(网卡)与TCP/IP之间的网络设备接口规范(NDIS)驱动程序。在NLB集群中的每台服务器上安装这种驱动程序,并且所有NLB节点均共享同一个代表所需网络资源(如Web服务器)的虚拟IP地址。所有NLB服务器均监听用户请求,但其中只有一台服务器对这些用户请求进行响应。NLB是Windows 2000 Advanced Server与Datacenter网络服务中的一种集成化组件。

Application Center 2000是微软推出的运行于Windows 2000平台的集群创建和管理工具,可以方便的创建和管理Web集群,配置NLB。NLB既可以通过Application Center使用,也可以作为一种独立解决方案使用。

3.2 COM+应用服务器

微软的COM+把COM、DCOM和MTS统一起来,形成真正适合于企业应用的组件技术。COM+应用服务器把COM组件软件提升到应用层而不再是底层的软件结构,通过操作系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给操作系统,因此,COM+与操作系统的结合更加紧密。

微软推出的CLB(Component Load Balance, 组件负载均衡)技术,运用于COM+应用服务器集群中,能够在提供COM+对象的多台服务器之间实现负载均衡功能,即通过多台服务器共享激活与执行COM+对象所产生的工作负载。

Application Center 2000是微软推出的负载均衡产品,运行于Windows 2000平台的集群创建和管理工具,可以方便的创建和管理COM+应用集群,配置CLB,并且对集群的性能表现与健康状况进行动态监控以及对特定事件进行响应。CLB是Application Center的组成部分之一,并且只能通过Application Center加以应用。

3.3 J2EE应用服务器

J2EE是一个利用JAVA技术开发和部署企业应用的开放架构。这个架构下,企业应用开发者可以自由选择其应用驻留的应用服务器。目前,比较流行的J2EE应用服务器主要有BEA公司的WebLogic、IBM公司的Websphere和Oracle公司的iAS。

WebLogic是BEA公司的J2EE应用服务器,WebLogic集群技术可以通过一组服务器共同工作,在多台机器间复制应用表示层和应用逻辑层,实现关键业务系统的负载分布。WebLogic把负载按一定策略分配到集群中所有的服务实例,从而使每个服务实例都能充分发挥能力,这可以通过其提供的WLS Proxy Plug-in或者单独的负载均衡硬件来实现。注意:WebLogic可以复制HttpSession对象和有状态的会话EJB,但由于WebLogic对于Session状态的处理采用横向镜像存储方式,因此建议使用WebLogic负载均衡时,不要同时使用硬件负载均衡

Websphere是IBM公司的J2EE应用服务器,利用多台Websphere应用服务器可以构成高扩展性服务器集群,对于发向Websphere服务器集群的客户端请求,Websphere可以实现动态的负载均衡。由于Websphere中对于Session状态的处理采用纵向共享存储方式,因此采用硬件负载均衡时,Websphere集群超过两节点也可以正确工作。

IAS是Oracle公司基于J2EE标准的应用服务器,用来开发、部署和管理互联网应用。IAS的负载均衡实质上是指如何能够跨单个CPU或多个CPU中的多个Oracle9iAS实例分布来自客户机的请求。IAS可以提供HTTP服务器上的负载均衡和J2EE容器中的负载均衡(Servlet和EJB容器实例使用多种负载均衡算法对请求进行负载均衡,并且提供了适用于RMI和SOAP请求的负载均衡增强功能),最后IAS还可以与第三方负载均衡产品(如Big-IP和Alteon)结合提供适用于非会话状态和会话状态的负载均衡

总之,WebLogic、Websphere和Oracle iAS都提供了负载均衡技术,能够很好的实现负载均衡和故障迁移功能,可以把多台机器联合起来形成一个庞大稳固的企业应用。

3.4 交易中间件

交易处理中间件也称为事务处理监控器(Transaction Processing Monitor, TPM)能够提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发展,分布应用系统对大规模的事务处理提出了需求,比如商业活动中大量的关键事务处理。事务处理监控器界于Client和Server之间,进行事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能。

目前比较流行的交易处理中间件主要有BEA Tuxedo、IBM CICS和东方通科技的TongEASY等。Tuxedo、CICS和TongEASY等产品都提供了在多台中间件服务器之间进行负载均衡的能力。

转自:http://net.zdnet.com.cn/network_security_zone/2010/0507/1734172.shtml

解读Tomcat和负载均衡的意思

ZDNET网络频道时间:2010-05-07作者: | ZDNet网络频道

本文关键词:Tomcat 网络 负载均衡

关于Tomact我们都知道它是一种嵌入的脚本软件,基本上我们在Linux下来来完成负载均衡。那么针对负载均衡和Tomact我们来进行一个具体的说明吧。之后再对他们的设定过程给出具体的内容。

◆Tomcat的集群

在Tomcat先前的版本中(4.1)可以通过第三方的jar文件来实现集群?在一个集群内安装和配置多个Tomcat实例不是一件容易的事情?将集群的能力增加到开放源的servlet容器(Tomcat)和应用服务(JBoss)中,JavaGroups是一个不错的选择?在最新版本的Tomcat,集群已经成为主要安装包的一部分?将第三方的集群实现对Tomcat服务器的影响减少到最低?

在典型的集群环境中,为了让成员之间相互协作和复制状态,它们之间需要互相通信?

组的通信可以使用point-to-pointRMI(TCP-IP)或者IP多播两种方式?

大部分的J2EE应用服务器(如JBoss?Oracle?WebLogic和Borland)都是使用IP多播让集群成员进行通信,在集群内发送state/update/heartbeat数据给其他成员?

Tomcat集群成员的通信是如下进行的:所有的集群成员用多播ping消息来对话?每一个Tomcat实例将发送一个消息,广播其IP地址和TCP监听端口(为sessionreplication)?如果在给定的时间帧内,某个实例没有接收到这些信息,那么该实例就会被认为是当机?

另一个比较流行的概念是farming,提供集群范围内的Web应用的热部署?在服务器farm内,一个Web应用通过拷贝war文件到集群内的一个节点上进行部署,farming将会把这个Web应用部署到整个集群中?类似的,从一个集群节点上删除war文件,farming将会在集群内所有的节点上反部署这个Web应用?Tomcat的集群文档中讲到在接下来的版本中将会支持farming能力?

◆负载均衡

一种机制,能将服务器的负载被分发到集群的不同节点上?基于负载均衡策略,应用不再在单一的服务器上执行,而是在动态选择的服务器上?当客户请求服务,一个或多个协作服务器处理这个请求?负载均衡为集群提供单一的入口,就如直接和独立的Web或者应用服务器交互一样,这对客户来说是透明的?

两种比较流行的负载均衡方法分别是DNS轮循和硬件负载均衡?DNS轮循提供单个逻辑名称,返回集群内某台机器的ip地址?这种方式是廉价?简单并且容易配置,但它并没有提供服务器之间的联系和高可靠性的能力?相对来说,硬件负载均衡通过虚拟ip地址来解决DNS轮循存在的问题?负载均衡器有一个单独的ip地址,映射到集群内的每一个节点上?负载均衡器接收到请求,然后重写头部来指向集群内的其他机器?如果我们从集群内移出一些机器,那么这个改变马上生效?硬件负载均衡的好处是服务器的联系性和高效?缺点是昂贵并且设置复杂?(作者在这里没有提到这种硬件的负载均衡方式可以用软件实现,这种方式称为VitrualServer)?

对于负载的分发有多种算法,下面是一些较为常用的算法:

round-robin轮循

random随机

weight-based权重

minimumload最小负载

lastaccesstime最后访问时间

programmaticparameter-based负载均衡器根据方法中的参数来选择服务器

负载均衡算法涉及统计上的差异,速度和简单性?举个例子,weight-based算法比其他的算法需要更长的计算时间?想得到对负载均衡的更详细的解释,参考ONJava的文章“LoadBalancingWebApplications"

转自:http://net.zdnet.com.cn/network_security_zone/2010/0507/1734173.shtml

J2EE下的集群负载均衡解析

ZDNET网络频道时间:2010-05-07作者: | ZDNet网络频道

本文关键词:负载均衡 网络

集群和负载均衡在很多软件和平台中都有所应用,根据不同的需求,我们所用的开发语言也不同。现在,就来说一下J2EE下的集群负载均衡的问题。首先我们还是来谈一下这个平台下的基本概念,看看有什么不同。

◆实现一个J2EE集群需要考虑的因素

设计J2EE集群需要考虑很多因素?下面这些问题都是在一个大型的J2EE系统需要考虑的(这个列表取自EJB基本训练文档-“用J2EE创建高可用性和可扩展的应用)?

◆集群

那种类型的集群适用:垂直还是水平扩展?

在那个层次实现集群:web服务器或者,servlet,JSP容器还是HTTPsession对象;或者EJB,应用服务JMS和JNDI对象还是数据库集群?

◆负载均衡

选中一个服务器的时间(也就是affinity,姻亲关系):每次请求,每个事务或者每次会话?

如何选择服务器(也就是负载均衡策略):randomly,round-robin,weight-baesd,least loade dserver,或者由应用决定?

负载均衡在哪个位置上实现,客户端还是服务器?

◆容错

服务器如何进行失败重启检测?

什么时候适合失效重启和尝试使用其他的服务器?

失败节点上的系统和应用的状态?

◆session状态持久化

状态如何传播?

传播的频率?

对象状态如何持久化?

状态持久化机制的效率如何?

复制的状态是否粘性?

网络环境对session状态的复制有限制吗?

◆建议的集群设置

下面列出在推荐的集群环境中,我要达到的目标:

可升级能力高

◆容错

动态配置,易于管理

自动发现新成员

失败重启和负载均衡,session数据内存复制

可插拔/配置的负载均衡策略

当一个成员加入或离开时,能通知组成员

通过多播的方式,无掉包的信息传输

集群对web应用和服务器来说都是无缝的?对客户端和服务端都是透明的?客户透明是指客户端无须知道集群服务或者集群的设置?集群的识别和访问和单机一样,而不是各自独立的服务?服务器透明是指服务器上的应用程序代码不需要知道是在一个集群之内?应用程序代码不能和其他的集群成员通信?

◆总结

我们看看如何部署一个集群(运行多个Tomcat服务实例)来达到上面提交的目标?我们将讨论在Tomcat5中实现session复制的集群架构和配置细节?

相关推荐