关于J2EE应用服务器集群简介

J2EE应用服务器提供商给集群下了定义, 一个集群就是一组在一起工作,显式提供企业服务(支持JNDI,EJB,JSP, HttpSession和组件失败转移等等)的机器群.下面是小编整理的J2EE应用服务器集群简介,希望大家认真阅读!

关于J2EE应用服务器集群简介

  负载均衡器(Load balancers):

进入集群和通行指示器到单个Web或应用服务器的唯一入口点

  ·Web servers

·网关路由器(Gateway routers) 在内网外的的出口点.

·多层交换器(Multilayer switches)

包和帧过滤确保在集群里的每个机器仅仅收到相关机器的信息.

  ·防火墙(Firewalls)

集群保护器通过端口过滤防止Hackers访问集群和内网

·存储区域网络交换器(SAN---Storage Area Networking switches)

连接应用服务器,web服务器,和数据库到一个后端存储媒介;

管理写数据到物理硬盘;还有失败转移.

  ·数据库(Databases)

不管他们是如何实现的,所有的集群都提供两个好处:可伸缩性(scalability)和高可用性(high availability---HA)

  可伸缩性(scalability)

伸缩性支持用户增长时保证应用服务质量的能力.集群允许你依靠增加额外的服务器提供额外的容量,因而保证伸缩性.

  高可用性(high availability---HA)

HA能被一个词概括:冗余.集群使用许多的机器处理服务请求.因此,如果在集群里的任何机器失败,另外一台机器会直接接管.

集群仅仅在应用服务器层提供HA.对于一个要展示真正HA的Web系统,一定象诺亚方舟一样至少包括Web服务器,网关路由器, 交换基础设施,等等中的两种.(关于HA的更多内容,看这个HA Checklist.)

  集群类型

J2EE集群通常流行两种风格:非共享和共享磁盘.在非共享集群里, 每个应用服务器都有的它自己的文件系统, 和这个集群里运行的应用程序自己的拷贝相一致.应用的更新和增加需要更新集群里的每个节点.当代码增加和更新发布时进行配置,大的集群有恶梦般的维护.

相反,磁盘共享集群使用一个所有的应用服务器都用的存储设备来获取在集群里运行的应用.更新和增加出现在一个文件系统里,集群里的所有的机器可以访问这些变化.直到最近才发现, 单点失败是这种方法的不利方面.然而,SAN给出了一个单独的逻辑接口,通过这个接口可以进入到一个提供失败转移,反馈,和伸缩性的冗余存储中介.(关于SAN更多的内容,看Storage Infrastructure)

当比较J2EE应用服务器的集群实现时,重要考虑:

·集群实现

·集群和组件失败转移服务

  ·HttpSession失败转移

·集群拓扑里的单点失败

·柔性拓扑规划

·维护

以后我们将看到四种流行的应用服务器在不同领域如何比较,但是,首先还是让我们更详细的检查所要考虑的每一项.

  集群实现

J2EE应用服务器在他们的JNDI(java命名和目录接口)实现周围实现了群集.虽然JNDI是J2EE应用依赖的核心服务,但是它很难在集群里实现,因为它不能把多个对象绑定在单个名字上.关于每个应用服务器的JNDI实现有三个普遍的群集方法.

·独立的

·中央集中的

·全局共享的

独立JNDI树

HP Bluestone Total-e-Server 和SilverStream Application Server利用了一个适合于每个应用服务器的独立JNDI树.在一个独立JNDI树的集群里成员服务器不知道或不关心集群里其他服务的存在.因此,不支持失败转移或者通过重定向HTTP或EJB请求的媒介服务提供支持.配置媒介服务,使他们知道集群里每个组件都驻留在哪里和万一失败发生如何得到一个替代的组件.

独立JNDI树的集群它的一个优点:更短的集群收敛时间和灵活的伸缩.集群收敛衡量了集群完全知道集群里所有的机器和相关对象的时间.然而, 在一个独立JNDI树的集群里收敛(Convergence)并不是一个要关心的问题,因为集群在两台机器一启动就完成了收敛(Convergence).独立的JNDI树的其他优点:伸缩仅仅需要需要增加额外的服务器.