中小型网站Spring3 OSCache mrpersister dbcp dbutils 整合

5 五月, 2010 (14:48) | J2EE框架, OpenSource, spring3, 架构设计, 案例与故事 繁体 English    DeliciOus    分享到新浪微博
作者: H.E. | 您可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.javabloger.com/article/spring3-dbutils-mrpersister-dbcp-oscache.html
豆瓣读书 向你推荐有关 J2EE框架OpenSourcespring3架构设计案例与故事、 类别的图书。

近期采用spring3/apache dbutils/mrpersister/dbcp做一个Web项目,数据库依然采用MySQL,不过这次打算加上XtraDB引擎。项目不算很大,大约在一年能支持50w左右的用户,并发至少5k以上。

先说说Spring3,自从入手就爱不释手了,那个方便啊真的是没话说了,action的零配置文件,让人快活,经过ab的压力测试,效率也不低于strust2。

mrpersister是我很多年以前偶然接触到的一根ORM框架,是我在寻找Java webmail的时候发现的,还记得那个Java Webmail的名字叫做Claros Webmail,我记得在Hibernate非常盛行的年代里,由于Hibernate等众多ORM需要大量的XML我对其极度的不满,mrpersister的出现那一刻让我坚决的放弃Hibernate。

Apache dbutils 非常的灵活,但是封装的还不够,有很多需要手工操作的地方,但是这样也有这样的好处,当你涉及到相对复杂一点SQL查询的时候,dbutils的出现起到了很大的帮助,因为他毕竟不是什么ORM工具,只是很灵巧的对JDBC进行了封装,非常灵活,适用于操作查询。

dbcp就不用说了,但是我需要声明一点,很多人说dbcp跟C3p0相比怎么怎么的不好,从来没有发觉有什么不好,只是很多时候听见身边不少同事向我抱怨使用C3p0总是有各式各样的问题,基本上开源的数据库连接池我都使用过,而且做过一个论证和研究,C3P0的确做工精细,考虑的东西比较全面,但是我个人认为这反而带来了不少学习的曲线,因为东西越多,如果不能掌握,反而是一个资源浪费。

至于整体风格还是采用REST架构,因为做的是一个纵向的门户网站,需要对搜索引擎友好,如果将.jsp完全的暴露在url地址栏中,是一件很不友好的事情。

在第一期的项目中不打算使用自动生成静态页面的技术,直接查询数据库,最多在页面上加入oscache进行页面上的分块局部缓存。

整体的软件架构如图所示:
http://1aqpcg.bay.livefilestore.com/y1p-u2tdBfHZZkRWgi_zbFBSJKPVoLysp3FcSuiJOIpOhwLOmpVYa-80_lceZqmH4SbtJzbydAEnILlubhvTlf-ybFb1OQ96J8M/Code_%20Architecture_s.gif

这个项目一共3个开发人员,2个美工,一个系统工程师,一个系统架构师(身兼3职,了解我的人都应该知道哪3职,呵呵 ),但我们并没有以软件工程师的身份为客户进行服务,而是顾问的身份出现,因为我们知道光是软件本身好是没用的,客户需要的不仅仅是软件,需要的是怎么通过软件获得更多的商业价值,这也是我们与其他几位竞争对手进行比较的优势所在。

的确第一期在技术实施上和编码上基本没有什么难度,因为都是使用我们成熟并熟悉的技术,使用就连linux下的磁盘阵列也是服务器供应商帮我们做好了。但是这个项目也有他的难点,主要问题在于,客户需要将来对系统进行扩容,在一年以后又新的商业规划需要支持更多的用户,但是目前我们的工期只有2个月,现在技术架构和将来的可扩展是目前这个项目最大的挑战,第一期工程投入的时间,精力有限,所以不太容许我们在设计上过多的去迁就将来的架构,但是也不能不去考虑,两难,所以做到两全其美真的是有点耗费脑细胞。

先写到这里,有空在说,我们对怎么权衡 对现在项目进行开发并且设计将来的可扩展性的,再这里需要感谢包子如一 两位同学,没有他们也不可能让这个项目一直在顺利的进行中。

–end–

豆瓣读书  向你推荐有关 J2EE框架 OpenSource spring3 架构设计 案例与故事、 类别的图书。



Creative Commons License
本文由J2ee企业顾问-黄毅创作,并已采用创作共用署名2.5中国大陆版许可证授权。

评论

Comment from lu
Time 2010年05月15日 at 10:47 下午

你好!看过你的spring3 restful 其中web.xml中

springmvc
org.springframework.web.servlet.DispatcherServlet
2

springmvc
/

一旦这样/设置以后 我想使用fckeditor 这样在页面上就无法使用了 能否帮助 谢谢 qq:838112113

Comment from achan2090
Time 2011年05月9日 at 9:42 上午

DButils 和 spring3 自带的 jdbcTemplate 相比,性能和使用方便如何

Comment from Hhhh
Time 2011年05月26日 at 5:09 下午

mrpersister好几年没更新了??恐怖啊

评论

评论也是有版权的!




8131