应用J2EE技术开发网站的体验
王伟东
很多朋友有这方面的困惑,写此文与大家共同交流
一 MVC框架
MVC框架:webwork的优雅设计,Struts的丰富资源二者的合并只能称为强强联手了
MVC框架:webwork的优雅设计,Struts的丰富资源二者的合并只能称为强强联手了
nihaoblog.com就采用webwork+hibernate构架,硬件配置P4 2.4G,1G内存实际运行时并发数达到7000没有问题(理论测试会达到更大值),运行也非常稳定
二 Hibernate数据库组件
1、Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。
2、Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性问题。
3、Hibernate内部的缓存机制,通过合理的配置可以发挥较好的作用
4、Hibernate屏蔽了数据库方言的选择,即非常方便系统从一种数据库移植到其它数据库上面
5、Hibernate面向对象的设计有利于程序的升级、扩展、维护
三 缓存的引进
1、缓存信息
当基础数据或者统计报表等数据操作第一次被访问时,被处理的内容被当作动态信息,基础数库从数据库中获得,统计报表也会被生成符合要求的图形、文件,然后这些信息都会被放入缓存信息中。
2、响应信息由缓存提供
当上述的基础数据或者统计报表继续被访问时,系统将会首先检查缓存信息中是否有对应的内容和我们设定的缓存规则,如果符合缓存信息存在而且符合缓存规则,给出的响应将来自于缓存信息,如果没有或者缓存信息已经不符合设定的要求,系统将重复上一步的动作。
很显然,上面的步骤2中,多数情况下,当用户请求到达时,被处理的内容将来自于缓存,所以大大的减少了与数据库的交互,或者不再需要为每个请求都生成一次报表图形或者文件,这部分工作的减少对于降低系统性能消耗、提高系统稳定性和并发处理能力是非常有益的
3、缓存的时效性
缓存大小的设计,缓存利用的算法(通常将访问次数少的,时间间隔长的内容放在缓存列表的尾部,当缓存满时覆盖尾部数据)
缓存大小的设计,缓存利用的算法(通常将访问次数少的,时间间隔长的内容放在缓存列表的尾部,当缓存满时覆盖尾部数据)
4、部分内容的静态化,比如首页等最常访问的页面,可以采用定时更新静态页面的方法
同上述硬件配置,无缓存的网站并发达到1000就相当慢了
四 Ajax技术
Ajax(就是javascrip技术中的XMLHttp及DOM技术的应用),无刷新通讯技术可以有较好的用户体验,但要注意不同浏览器的兼容
五 Web标准的应用
如nihaoblog的风格,blog的页面只有一套,定义了90个css文件,页面引入不同的css文件,达到样式切换的效果,但同样要注意不同浏览器的兼容
六 集群技术
随着网站人气的上升,就要考虑架设多服务器了,分布式数据库服务器、WEB服务器集群技术、图片文件服务器等等,希望你的代码能有利于日后的升级


06年热贴
