揭密J2EE集群Cluster 不指定

Heck post in 编程杂谈 2010/09/26 16:48 评论(0) 阅读(564) | |
  tomcat是只支持web应用系统,所以采取struts+hibernate或tapestry+hibernate(或者中间加上spring/jdon)都属于web应用系统,他们都是单机stand-alone系统,利用上述tomcat的负载平衡只能勉强支撑两三台服务器,而且随着访问量增加,tomcat等web服务器将趋于缓慢,从这篇文章观点来看,web应用程序在性能的伸缩性不太高。下面讨论的都是因为使用ejb后而使得你的应用程序自动获得的能力:
以weblogic jboss为主的采取的paired servers 对服务器复制策略则要提高性能很多,但是对load balancer算法要求高,有些普通的load balancer不一定符合要求。ibm采取的是中央状态服务器策略;而sun则采取的是特殊数据库复制hadb策略。
 
 该文最后分析了jndi ejb和jms的集群原理,实际也是阐述了从性能集群原理上说,为什么会诞生ejb等复杂技术以及对于一些大型应用为什么需要使用ejb的原因所在。文章还否定了这样的观点:单机系统几乎可以透明的迁移到集群结构。在迁移时,需要考虑很多问题,如状态/缓存 httpsession以及特殊的服务等。

  
另外观点:分布式结构一定比配置定制结构可靠吗?不一定。
在使用ejb时有人喜欢什么都实现分布式,其实这是不必的,一般可让web应用程序首先选择同台服务器中的ejb服务,这叫配置结构。

作者的结论是:
clustering is different from the stand-alone environment
  
   集群架构是完全不同于单机结构的。在建立一个大型的可伸缩系统之前,我们必须对不同的j2ee服务器产品实现集群有不同的了解和掌握,选择合适的第三方框架保证确认他们也是支持集群环境的(如jdon框架),合适的架构设计将从集群中得益,而不是将苦难留给你的企业及其其他后来的同事(国人经常是在架构设计时,喜欢方便自己,害了系统和他人)。
  
     一直以来,所谓轻量的架构系统受到狂热分子的鼓吹和极端追从,甚至提出否定ejb的观点(如spring作者提出的without ejb),这些祸患人心的观点不能说是完全错误的,但是至少是极端,属于一叶遮目,看待ejb不能只从oo设计角度,还要从实际应用性能上考虑,就象看到soa结构一样,设计和性能是实际架构选择的两个基本点,善于平衡才是我们实际架构选择的主要宗旨。


来源:Heck's Blog
地址:http://www.hecks.tk/j2ee-custer-list-off-secret/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!
Tags: , ,