J2EE集群开发部署实战

来源:csdn 作者:李俊杰 2007-11-20 出处:pcdog.com

hibernate  java  jsp  linux  oracle  
下一页 1 2 3 4 

概述

一个集群系统是一群松散结合的服务器组,形成一个虚拟的服务器,为客户端用户提供统一的服务。对于这个客户端来说,通常在访问集群系统时不会意识到它的服务是由具体的哪一台服务器提供。集群系统一般应具高可用性、可伸缩性、负载均衡、故障恢复和可维护性等特殊性能。

越来越多的关键任务和大型应用正运行在J2EE平台上,象银行之类的应用要求很高的可用性(HA),大型系统比如大型网站则要求更好的伸缩性。J2EE集群是最常用的技术,用来提供高可用性和伸缩性的容错服务,单机部署和多机集群化部署差别很大,网上的资料大多语焉不详,即使文档图文并茂,也是到了关键处就部署成功,其实后面还要做些工作才行,且多以单机部署多个server来模拟集群化部署,其实和真正多机部署还是有比较大的差别。本文仅以weblogic应用服务器为例说明集群化部署。

集群层次说明

Web级集群,是J2EE集群中最重要和基础的功能。web层集群技术包括:Web负载均衡和HTTPSession失效转移。web负载均衡,基本的是在浏览器和web服务器之间放置负载均衡器。

应用级集群,是ejb集群,EJB是J2EE应用平台的核心,EJB是用于开发和部署具多层结构的、分布式的、面向对象的Java应用系统跨平台的构件体系结构。主要是业务应用,部署在EJB容器上。

数据库级集群,是oracle数据库设置多个数据库实例,全部映射到数据库。

Weblogic集群概念

?         Domain:由配置为Administrator Server的WebLogic Server实例管理的逻辑单元,这个单元是有所有相关资源的集合。

?         Server: 一个相对独立的,为实现某些特定功能而结合在一起的单元。按功能可分为domain server 和managed server。一个Domain 可以包含一个或多个WebLogic Server实例,甚至是Server集群。一个Domain中有一个且只能有一个Server 担任管理Server的功能,其它的Server具体实现一个特定的逻辑功能。

?         Domain  Server:在一个集群中,有且仅有一个domain server,即管理server,该server只负责管理多个Managed server(被管理server),即domain server仅仅是行政领导,考勤之类的活动,如某个managed Sever的状态,是未知(unKnown),还是运行(run),还是停止(shutdown),远程启动等等,不负责具体业务。因此部署时domain server上不要部署具体任务,毕竟人家是当官的吗。

?         Managed  Server:真正的实干家,部署具体的应用。应用及业务逻辑组件被分发在多个受管服务器(Managed Server)。

Weblogic集群要求

?         集群中的所有Server必须位于同一网段,并且必须是IP广播(UDP)可到达的

?         集群中的所有Server必须使用相同的版本,包括Service Pack

?         集群中的Server必须使用永久的静态IP地址。动态IP地址分配不能用于集群环境。如果服务器位于防火墙后面,而客户机位于防火墙外面,那么服务器必须有公共的静态IP地址,只有这样,客户端才能访问服务器

?         使用weblogic的支持集群的licence

项目实战

项目概况

我们的项目是struts—ejb—hibernatespring,因为hibernate和spring都必须进行初始化且初始化都依赖于servlet,在系统启动时就初始化数据,并且我们在web层和ejb层分别部署为web集群和ejb集群,而hibernate和spring都部署在应用服务器上。为此,我们打了两个部署包,一个是cnlife.war, cnlife_app.ear,其中cnlife.war包部署在web集群上,cnlife

_app.ear部署在ejb集群上,cnlife_app.ear包括两个包,其中一个是cnlifeejb.jar(ejb包),

另外一个是backgroudinit.war,backgroudinit.war用来初始化spring,hibernate的初始化数据。

    cnlife.war  (部署在Web Server)

                _backgroudinit.war

                |

cnlife_app.ear-| (部署在 Application Server)

|_cnlifeejb.jar

Ejb是stateless Session bean,使用ejb的目的就是应用服务器集群



下一页 1 2 3 4 
上一篇:J2ee应用程序结合水晶报表:例程研究
下一篇:J2me中访问手机本地电话本