中小型网站Spring3 OSCache mrpersister dbcp dbutils 整合
近期采用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进行页面上的分块局部缓存。
整体的软件架构如图所示:

这个项目一共3个开发人员,2个美工,一个系统工程师,一个系统架构师(身兼3职,了解我的人都应该知道哪3职,呵呵 ),但我们并没有以软件工程师的身份为客户进行服务,而是顾问的身份出现,因为我们知道光是软件本身好是没用的,客户需要的不仅仅是软件,需要的是怎么通过软件获得更多的商业价值,这也是我们与其他几位竞争对手进行比较的优势所在。
的确第一期在技术实施上和编码上基本没有什么难度,因为都是使用我们成熟并熟悉的技术,使用就连linux下的磁盘阵列也是服务器供应商帮我们做好了。但是这个项目也有他的难点,主要问题在于,客户需要将来对系统进行扩容,在一年以后又新的商业规划需要支持更多的用户,但是目前我们的工期只有2个月,现在技术架构和将来的可扩展是目前这个项目最大的挑战,第一期工程投入的时间,精力有限,所以不太容许我们在设计上过多的去迁就将来的架构,但是也不能不去考虑,两难,所以做到两全其美真的是有点耗费脑细胞。
先写到这里,有空在说,我们对怎么权衡 对现在项目进行开发并且设计将来的可扩展性的,再这里需要感谢包子和如一 两位同学,没有他们也不可能让这个项目一直在顺利的进行中。
–end–

本文由J2ee企业顾问-黄毅创作,并已采用创作共用署名2.5中国大陆版许可证授权。
评论
Comment from achan2090
Time 2011年05月9日 at 9:42 上午
DButils 和 spring3 自带的 jdbcTemplate 相比,性能和使用方便如何
Comment from Hhhh
Time 2011年05月26日 at 5:09 下午
mrpersister好几年没更新了??恐怖啊






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