怎样在一个spring+hibernate的框架下,使他能支持分布式服务器集群

04-12-16 hk2000c
              

数据库读写代码都是 hibernate 的 DAO

使用 org.springframework.orm.hibernate.HibernateTransactionManager

作为事务控制类,现在问题来了。我现在要组建一个多台服务器集群。

apache+多台tomcat 或者 apache+ 多台 jboss。做 load balance。

我现在数据库是一个mysql ,我不知道怎么把我的代码做到对数据库读写多台应用服务器能正确地读写。因为 spring hibernate 文档里我暂时没有找到 cluster 的内容。

我怎样修改代码,或者干脆放弃 spring hibernate 转投 EJB 2.0 ?

或者使用 JTA?但我不知道怎么使用?

望高手指教!

              

3
banq
2004-12-16 18:57

Spring+hibernate不支持集群,采取EJB调用Spring的方式。

hk2000c
2004-12-17 11:58

板桥大哥谢谢回复

spring hibernate 就是说不支持分布式事务,均衡负载?但是我又看到spring只要调换一下本地JDBC连接换成JNDI数据库连接就可以了的说法,又看到在Action里面使用2段式JTA的提交方法就可以支持分布式事务的说法。我也有点糊涂了。

那我把JBDC 本地连接配置 换成 应用服务器支持的JNDI JDBC 配置这样是不是可以暂时解决分布式事务处理的问题呢?

如果 server1 server2 共同使用 一个 DB , 2个 app 的同样功能的jdbc 事务都需要在 table1 中插入数据 ,而且同时2台服务器有很多事务需要读取这张表的数据,这种情况下有什么简单的过渡方法?

banq
2004-12-18 13:22

更换数据源JNDI,只是利用了容器提供的数据库连接池等一些特性,包括跨数据库的一些事务机制。这适合一个app server + 多台db server。

你说的多台app server + 一台db server,目前除非自己手工做,只有使用EJB是最直接方便的办法。

Spring宣称它自己侵入性很少,所以,用反义词来说:就是它什么都不做,或者说,它没有什么东西,只有Ioc/AOP模式。

hk2000c
2004-12-22 13:58

最近为了分布式应用以及均衡负载伤透了脑筋,也曾想过使用JTA 侵入 业务逻辑支持分布式,但是最终反复对比后,艰难取舍。觉得EJB 的整体解决了所有的功能,让开发人员从系统级的开发精力放到了业务逻辑的关注中来。spring+hibernate 的确是轻量级的,分布式自己去搞,花的精力要多的多。而且代码耦合性很高,业务逻辑和事务处理代码混杂在一起。分层次很伤脑筋。使用EJB2.0 的确会使开发大型系统在能力,安全,负载,事务,伸缩性,从体系上提高不止一个档次。spring +hibernate 轻量、快速、方便,有他的作用。EJB 架构 从开始就是从标准工业化布局,非常重量级。

真的考虑的很多很多。

8Go 1 2 3 4 ... 8 下一页