该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2004-04-08
引用 Spring应该不具备集群能力吧?我没有接触过spring
Spring不是App Server,确实不具备集群能力, 他只有一个JtaTransactionManager能处理 分布式事务的。 |
|
返回顶楼 | |
发表时间: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的分布式还有什么必要吗?我也不清楚,也许自己水平不够。大家继续讨论。 |
|
返回顶楼 | |
发表时间:2004-04-08
femto 写道 Spring不是App Server,确实不具备集群能力, 他只有一个JtaTransactionManager能处理 分布式事务的。 如果没有集群能力的话,我不太理解Spring在APP层有什么用啊?尽管我知道它的设计理念很好,如非侵入式啊,IOC模式啊什么的,可是我看到的材料都是谈一大堆诸如此类的设计概念问题,设计概念再好我也知道它到底为我做什么啊?做什么才是目的,设计概念只是手段而已,我看不到目的了解一堆手段有什么用呢?麻烦哪位了解Spring的朋友能否出来谈一谈。 |
|
返回顶楼 | |
发表时间: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层如何支持集群的详细方案? |
|
返回顶楼 | |
发表时间:2004-04-08
到 edocs.bea.com上去找找看吧。
|
|
返回顶楼 | |
发表时间: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. |
|
返回顶楼 | |
发表时间: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集群就好了。 |
|
返回顶楼 | |
发表时间: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配合能很好支持集群啊?最好包括数据修改同步,多谢! |
|
返回顶楼 | |
发表时间:2004-04-08
再问一下,请问JBOSS在支持集群方面是何原理?比如如何支持EJB通讯的负荷分担和故障恢复,对SFSB的复制是何策略?
另外,如果在APP中引入Spring是否会对性能产生影响? |
|
返回顶楼 | |
发表时间:2004-04-08
开个玩笑别介意,我感觉你好像是在进行技术框架的show,而不是做方案了。
JBoss现在已经可以和Tomcat集成的很紧密了,可以在一个JVM里面,因此我想像不出你要把Tomcat和JBoss分开部署的必要。 如果用JBoss的话,不妨试试JBossCache,支持分布式Cache。 |
|
返回顶楼 | |