论坛首页 海阔天空论坛

参加4月4日Ben Wang的JBoss讲座纪实

浏览 46390 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-04-08  
引用
Spring应该不具备集群能力吧?我没有接触过spring

Spring不是App Server,确实不具备集群能力,
他只有一个JtaTransactionManager能处理
分布式事务的。
0 请登录后投票
   发表时间:2004-04-08  
我没有做过集群,是这方面的门外汉。

引用
如果仅仅是想分布的话,我并不觉得EJB有什么特别的好处,自己实现CORBA或RMI或SOAP都不困难,用EJB反而麻烦,需要配置APP SERVER。


没有用过CORBA,如果你用RMI来实现的话,一定比EJB麻烦的多,如果用Web Services的话,效率就是一个问题,并且Web Services是无状态的,这也是一个问题。

引用
1)通讯层次的负载分担和故障恢复方案


其实这和EJB到没有一定的关系,tomcat也可以自己做集群。

引用
2)SESSION数据的同步方案


提供集群支持能力的App Server都具备这种能力,例如Tomcat集群,Resin集群都可以实现HTTP Session的复制能力,说到这里我也开始怀疑用EJB做集群到底有什么必要性了。其实我甚至在想人为的把Web Server集群和App Server集群分开也是没有什么必要的,例如你做了一个WebLogic集群的话,你还会考虑单独把Web层分出来吗?

也许用支持分布式能力的EJB来实现集群的好处在于不同的App Server之间可以进行更加灵活的负载分担,只是猜猜了。

我想当初EJB的分布式的意义在于提供了一种Java访问组件的统一的方式,包括Web方式访问组件,Applet方式访问组件,Desktop Application访问组件,甚至wireless Application访问组件,这也许是EJB被设计出来的真正用意,不同的方式不同的应用都可以共享的访问一个业务组件。

但是现在来看,Java的组件已经退化到了只通过Web方式来访问了,至于其他方式也可以通过Web方式间接来访问,这就让EJB被设计成分布式的意义变的不那么重要了。那么EJB的分布式还有什么必要吗?我也不清楚,也许自己水平不够。大家继续讨论。
0 请登录后投票
   发表时间:2004-04-08  
femto 写道

Spring不是App Server,确实不具备集群能力,
他只有一个JtaTransactionManager能处理
分布式事务的。


如果没有集群能力的话,我不太理解Spring在APP层有什么用啊?尽管我知道它的设计理念很好,如非侵入式啊,IOC模式啊什么的,可是我看到的材料都是谈一大堆诸如此类的设计概念问题,设计概念再好我也知道它到底为我做什么啊?做什么才是目的,设计概念只是手段而已,我看不到目的了解一堆手段有什么用呢?麻烦哪位了解Spring的朋友能否出来谈一谈。
0 请登录后投票
   发表时间:2004-04-08  
robbin 写道

其实这和EJB到没有一定的关系,tomcat也可以自己做集群。


我这里说的是WEB层到APP层的通讯,对EJB来讲通讯应该也是RMI或CORBA,这个层次的通讯负载分担和故障恢复有什么方案吗?tomcat的集群好象仅仅是HTTP层的吧?

引用
提供集群支持能力的App Server都具备这种能力,例如Tomcat集群,Resin集群都可以实现HTTP Session的复制能力,说到这里我也开始怀疑用EJB做集群到底有什么必要性了。其实我甚至在想人为的把Web Server集群和App Server集群分开也是没有什么必要的,例如你做了一个WebLogic集群的话,你还会考虑单独把Web层分出来吗?

我想当初EJB的分布式的意义在于提供了一种Java访问组件的统一的方式,包括Web方式访问组件,Applet方式访问组件,Desktop Application访问组件,甚至wireless Application访问组件,这也许是EJB被设计出来的真正用意,不同的方式不同的应用都可以共享的访问一个业务组件。

但是现在来看,Java的组件已经退化到了只通过Web方式来访问了,至于其他方式也可以通过Web方式间接来访问,这就让EJB被设计成分布式的意义变的不那么重要了。那么EJB的分布式还有什么必要吗?


Tomcat集群应该只解决HTTP层的问题吧?把WEB层和APP层分开做集群在有些场合是有必要的,比如APP层不仅仅需要对WEB提供逻辑,也要对第三方或者内部的企业应用提供接口的话就必须分开,还有就是安全问题,通常WEB是直接向公网开放的,而APP层可能放在私网内部。

当然,分布本身没有什么问题,我关心的是有没有什么资料能介绍一下分布以后的APP层如何支持集群的详细方案?
0 请登录后投票
   发表时间:2004-04-08  
到 edocs.bea.com上去找找看吧。
0 请登录后投票
   发表时间:2004-04-08  
引用
如果没有集群能力的话,我不太理解Spring在APP层有什么用啊?

Spring要集群能力干什么阿?Web 和App Server都有集群能力了阿,
你要做Web Application,就把Spring用在Web Container里头,
Session的集群由Web Server完成。如果要用到App Server,
就用Spring帮忙组装SLSB/SFSB与其他Object的关系。
而EJB本身的集群能力由App Server提供。

Spring是要简化J2EE开发的一个框架,他自己可没打算作成App Server.
0 请登录后投票
   发表时间:2004-04-08  
引用
关于人为的把Web Server集群和App Server集群分开


人为分开是在很特殊的情况下的,在Web 和App对于资源利用极大不同的
情况下才考虑分开。
比如Web浏览人数很多,但是对数据库访问并不大,
Web端需要集群,然后把App分出来在Ejb后面建一个业务逻辑层,
由一台App Server访问数据库,这样连接池什么的资源可以节省。
否则每台 Web Server都要跟数据库有连接了。

另外一种极端,业务逻辑复杂,Web简单。Ejb后面有复杂计算
,跟多台分布式数据库有交互,跟外界第3方系统有交互,
这时候采用1台Web+多台App Server。

当然Web 也复杂,App也复杂的话,可以1台 Web+1台App,
或者n+n的解决方案。

不过实际上大多数应用都是差不多的负载,所以直接一个Web Application集群就好了。
0 请登录后投票
   发表时间:2004-04-08  
femto 写道
引用
如果没有集群能力的话,我不太理解Spring在APP层有什么用啊?

Spring要集群能力干什么阿?Web 和App Server都有集群能力了阿,
你要做Web Application,就把Spring用在Web Container里头,
Session的集群由Web Server完成。如果要用到App Server,
就用Spring帮忙组装SLSB/SFSB与其他Object的关系。
而EJB本身的集群能力由App Server提供。

Spring是要简化J2EE开发的一个框架,他自己可没打算作成App Server.


这样啊,那我可不可以这样设想我的方案:
WEB层:apache+tomcat+struts
逻辑层:jboss+SFSB+spring+普通逻辑处理JAVA对象
ORM层:hibernate+somecache

BTW,hibernate与什么cache配合能很好支持集群啊?最好包括数据修改同步,多谢!
0 请登录后投票
   发表时间:2004-04-08  
再问一下,请问JBOSS在支持集群方面是何原理?比如如何支持EJB通讯的负荷分担和故障恢复,对SFSB的复制是何策略?

另外,如果在APP中引入Spring是否会对性能产生影响?
0 请登录后投票
   发表时间:2004-04-08  
开个玩笑别介意,我感觉你好像是在进行技术框架的show,而不是做方案了。

JBoss现在已经可以和Tomcat集成的很紧密了,可以在一个JVM里面,因此我想像不出你要把Tomcat和JBoss分开部署的必要。

如果用JBoss的话,不妨试试JBossCache,支持分布式Cache。
0 请登录后投票
论坛首页 海阔天空版

跳转论坛:
Global site tag (gtag.js) - Google Analytics