日期:2014-05-18  浏览次数:20682 次

J2EE集群原理(二)【转载】

JNDI集群

Jndi集群对于EJB也是非常重要的,因为几乎所有的EJB都是从JNDI调用开始的

?

共享全局JNDI

WeblogicJBOSS都使用一个全局的、共享的、分布在整个集群系统的JNDI树,对象被绑定到全局上下文,使用ip多播方式拷贝JNDI数据

图十四:全局共享JNDI

?

集群中的每个节点都有自己的命名服务器,并且自动保存其他所有节点的JNDI数据,因此这种结构具有高度可靠性

实际中,集群JNDI树主要有两个用途:一是用于部署,你只需要将某个EJB部署到一台服务器上,系统会自动将其拷贝到其他节点。二是在运行中你可以用JNDI存取自己的对象,这些自定义对象同样会被自动拷贝到其他节点。

?

独立的JNDI

Sun JES, IBM Websphere和其他厂商使用的是独立的JNDI树,各个节点拥有自己独立的JNDI,而不会关心其他节点的JNDI。但这并不意味着它们不能实现集群,关键是每台服务器上的配置要相同,应用也要相同,这样的话通过代理agent就能实现高性能的集群了

?

?

Sun JES IBM Websphere都在每个节点处安装了一个agent,由console负责协调各个agent

?

但这种方式不支持动态绑定运行时生成的对象,设计者的理由是:JNDI本身就是作为管理外部资源的中间层,运行时对象绑定不在JNDI