作者:肖菁
【程序编程相关:Unix/Linux 平台任务的自动化】作者简介 【推荐阅读:Expect 教程中文版】
肖菁,软件工程师,ibm developerworks/bea dev2dev/sun 技术开发者撰稿人,主要研究j2ee.web services以及他们在websphere.weblogic平台上的实现,拥有ibm的 developing with websphere studio证书.您可以通过guilaida@163.com与作者取得联系,或者查看作者的主页获取更多信息. 【扩展信息:用实例学:ASP.NET的include】
文章摘要
cache是一种用于提高系统响应速度.改善系统运行性能的技术.尤其是在web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能.本文中作者给大家介绍一个实现j2ee框架中web应用层缓存功能的开放源代码项目----oscache.通过应用oscache,我们不但可以实现通常的cache功能,还能够改善系统的稳定性.
1 面临的问题
1.1 需要处理的特殊动态内容
在信息系统建设过程中我们通常会遇到这样的问题:
1. 基础数据的变更问题
信息系统中需要处理的基础数据的内容短时间内是不会发生变化的,但是在一个相对长一些的时间里,它却可能是动态增加或者减少的.
举个例子:电子商务中关于送货区域的定义,可能短时间内不会发生变化,但是随着电子商务企业业务的扩大,系统中需要处理的送货区域就可能增加.所以我们的系统中不得不在每次向客户展示送货区域信息的时候都与数据库(假设送货区域信息保存在数据库中,这也是通常采用的处理方法)进行交互.
2. 统计报表(不仅限于统计报表)的问题
一般来说,统计报表是一个周期性的工作,可能是半个月.一个月或者更长的时间才会需要更新一次,然而统计报表通常是图形显示或者是生成pdf.word.excel等格式的文件,这些图形内容.文件的生成通常需要消耗很多的系统资源,给系统运行造成很大的负担.
1.2 问题的共同点
通过比较分析,不难发现这两类问题有一些共同点:
1.被处理的内容短时间不变,所以短时间内可以作为静态内容进行处理
2.在一个不太长的时间内,被处理的内容可能或者必定产生变化,所以必须将他们作为动态内容进行处理
3.在合理的时间区段内可以忽略被处理内容变化后带来的影响
4.对这些内容的处理动作比较消耗系统性能,影响系统响应时间
1.3 解决方法
缓存技术可以帮助我们很好的解决这个问题:
1.缓存信息
当上述的基础数据或者统计报表第一次被访问时,被处理的内容被当作动态信息,基础数库从数据库中获得,统计报表也会被生成符合要求的图形.文件,然后这些信息都会被放入缓存信息中.
2.响应信息由缓存提供
当上述的基础数据或者统计报表继续被访问时,系统将会首先检查缓存信息中是否有对应的内容与我们设定的缓存规则,如果符合缓存信息存在而且符合缓存规则,给出的响应将来自于缓存信息,如果没有或者缓存信息已经不符合设定的要求,系统将重复上一步的动作.
很显然,上面的步骤2中,多数情况下,当用户请求到达时,被处理的内容将来自于缓存,所以大大的减少了与数据库的交互,或者不再需要为每个请求都生成一次报表图形或者文件,这部分工作的减少对于降低系统性能消耗.提高系统稳定性与并发处理能力是非常有益的.
... 下一页