`
iamxi
  • 浏览: 191573 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【转】用Java缓存机制创建更快的Web应用----简介和配置

    博客分类:
  • Java
 
阅读更多

   Web开发人员通过Java的缓存功能可以方便快捷的改善应用程序的性能。对于java应用程序来说,一个强大的分布式Java缓存系统(JCS),是用简单的API就可以进行高度配置的工具。这篇文章概要的介绍了JCS,并且展示了怎样用它为Web应用程序提速。

 

  很多的桌面应用程序正在被重写成Web应用程序,理想情况下,被重写后的应用程序应该和桌面版本的应用程序一样快捷并且具有可伸缩性。几乎所有的Web应用都可以通过JCS在速度方面获得大幅提高。经常性的缓存那些很少改变的的数据是减少用户等待时间的非常好的方法,用简单的API处理缓存数据的功能能够帮助我们实现这个目标。开源的JCSApache Jakarta 工程)就是这样的一个工具,这篇文章解释怎样配置和使用JCS来为Web应用程序缓存数据。

 

JCS概要

 

JCS是一个用Java语言编写的可以用于创建桌面和Web应用程序的缓存系统,它为一下处理提供了方便的机制

・在缓存中保存数据;

・从缓存中取得数据;

・从缓存中删除数据等。

  使用JCS,可以把被缓存数据保存到指定的不同的数据存储区域。JCS定义了四种核心存储区域的类型:memorydisklateralremote。我们可以一起使用这些核心存储区域来获得更大的缓存数据的灵活性。如可以指定首先被使用的存储区域,在缓存失败的时候使用另外一个存储区域。

 

Memory

    Memory区域是一个使用LRULeast Recently Used)运算规则的纯内存缓存区域,在内存缓存区被填满的时候,LRU首先删除最近最少被使用的缓存数据。这个数据区有比较好执行效率,因此大多数的用户把它指定为默认首先被使用的缓存区。

 

Disk 

   磁盘区是Web服务器的文件磁盘上的一个缓存数据的区域。要改善性能,可以在内存中保存缓存数据的键值(keys)而在文件磁盘上缓存实际的数据。在典型的首先使用内存区的JCS的配置中,任何不能在内存中持有的数据,就要被写到磁盘区中。

 

Lateral 

     Lateral缓存区提供一种把缓存数据分配个横向关联的多个服务器的方法,缓存服务器必须打开一个用于监听的端口,并且建立一个socket链接。因为这个存储区不能保证缓存间数据的一致性,所以这成为我们要面对的潜在问题。但是如果要设计使用这个存储区,那么这个问题是不太可能发生的。

 

Remote 

    Remote区使用RMIRemote Method Invocation)提供一个缓存区。这个存储区使用处理缓存数据的远程服务器。远程缓存服务器能够被多个JCS客户端应用程序用于保存缓存数据。被定义的监听器用于搜集来自客户端和服务器的的请求。这个缓存区有助于缓解对系列化和多链接点的开销。

 

JCS配置

   配置JCS的过程就像创建和编写cache.ccf文件一样简单。Cache.ccf文件定义了要使用的缓存区以及这些缓存区的属性或选项,把这个文件结合到应用程序上需要一个方便快捷的刻度缓存的方法。下面是为了显示主要的配置点制作的一个尽可能简单的例子。你可以指定很多选项和配置来适应你所需要的正确的配置。

最基本的cache.cff文件-----一个纯内存缓存配置

jcs.default=jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes

jcs.default.cacheattributes.MaxObjects=1000

jcs.default.cacheattributes.MemoryCacheName=

org.apache.jcs.engine.memory.lru.LRUMemoryCache

 

   在上面的配置中,最后一行指定了LRUMemoryCache作为内存缓存,并且在内存中保持的对象数被设定为1000

 

   大多数的应用程序的缓存系统需要比上面配置更广泛的配置,在下面的配置中,使用了内存区,并且在定义自己的存储区时,使用磁盘区。

 

jcs.default=DISK_REGION

jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes

jcs.default.cacheattributes.MaxObjects=1000

jcs.default.cacheattributes.MemoryCacheName=

  org.apache.jcs.engine.memory.lru.LRUMemoryCache

 

jcs.region.OUR_REGION=DISK_REGION

jcs.region.OUR_REGION.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes

jcs.region.OUR_REGION.cacheattributes.MaxObjects=1000

jcs.region.OUR_REGION.cacheattributes.MemoryCacheName=

  org.apache.jcs.engine.memory.lru.LRUMemoryCache

jcs.region.OUR_REGION.cacheattributes.UseMemoryShrinker=true

jcs.region.OUR_REGION.cacheattributes.MaxMemoryIdleTimeSeconds=3600

jcs.region.OUR_REGION.cacheattributes.ShrinkerIntervalSeconds=60

jcs.region.OUR_REGION.cacheattributes.MaxSpoolPerRun=500

jcs.region.OUR_REGION.elementattributes=org.apache.jcs.engine.ElementAttributes

jcs.region.OUR_REGION.elementattributes.IsEternal=false

 

jcs.auxiliary.DISK_REGION=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory

jcs.auxiliary.DISK_REGION.attributes=

  org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes

jcs.auxiliary.DISK_REGION.attributes.DiskPath=c:/jcs/disk_region

jcs.auxiliary.DISK_REGION.attributes.maxKeySize=100000

 

  在上面的配置中的第一行把DISK_REGION设定为默认的存储区。DISK_REGIONIndexedDiskCacheFactory类型,并且指定缓存文件要存放在磁盘上的c:/jcs/disk_region目录中。上面配置中的第二组定义了自己存储区,并且为它添加了一些选项,这种同时指定内存区和磁盘区的配置是常用的一种类型。上面配置中第三组中定义一个备用区。

 

    JCS有连个依赖:concurrentcommons-logging(在JCS1.2.7.0以前的版面中,有另外连个依赖:commos-collectionscommons-lang
分享到:
评论

相关推荐

    深入体验Java+Web开发内幕-高级特性-高清扫描版

    通过学习这本书,读者不仅可以掌握Java和Web开发的高级特性,还能了解如何在实际项目中应用这些技术,提升开发效率和软件质量。无论是对于初级开发者还是经验丰富的专业人员,这都是一次深入而全面的学习体验。

    Java Web之高级应用

    Java Web技术是互联网应用程序开发的核心之一,它涵盖了各种技术和框架,用于构建动态、交互式的Web应用程序。在这个高级应用的主题中,我们主要探讨的是Java Web技术的深入理解和实践,由知名软件培训专家张孝祥...

    paoding-rose, paoding-rose 提供最好用的Java Web应用整体性框架。.zip

    **标题与描述解析** "paoding-rose" 是一个针对Java Web应用的开源...以上就是关于paoding-rose的一些核心功能和相关知识点,学习和使用这个框架可以帮助Java Web开发者提高工作效率,创建更健壮、高性能的应用程序。

    以SSH框架与jQuery技术为_省略_础的Java_Web开发应用探讨_何晶.pdf

    6. 易于学习和使用:SSH框架和jQuery都有丰富的社区支持和文档,降低了开发者的学习成本,使得开发者能更快地投入到实际项目开发中。 7. 扩展性:SSH框架和jQuery的开放性使得它们能够与其他框架和库良好集成,增加...

    DWR js框架 javascript框架 web与java交互 Direct Web Remoting Ajax开源框架

    Direct Web Remoting (DWR) 是一个开源的Java库,它允许Web应用程序在客户端的JavaScript和服务器端的Java之间进行直接的、异步的通信,实现了Web应用中的Ajax功能。DWR通过自动化处理JavaScript和Java之间的类型...

    java-使用java开发的视频播放器videoplayer

    1. JavaFX:JavaFX是Java平台上的一个用户界面工具包,用于创建桌面应用、Web应用和移动应用。在开发VideoPlayer时,JavaFX提供了丰富的组件库,如MediaView和MediaPlayer,用于播放视频和音频文件。 2. Java Media...

    web service on java

    - JAX-WS 是Java平台上的SOAP(Simple Object Access Protocol)服务开发工具包,用于创建和消费SOAP Web服务。 - 它提供了两种主要的接口:Service端点接口(SEI, Service Endpoint Interface)和SOAP消息处理...

    JessMA Java Web 应用开发框架

    JessMA Java Web 应用开发框架是一个全...通过上述知识点的介绍,JessMA Java Web应用开发框架可以被看作是一个全面考虑了开发效率、性能和体验的综合解决方案,旨在帮助开发者更快地开发和部署高质量的Web应用程序。

    JAVA缓存技术_深入了解.ppt

    **JAVA缓存技术详解** Java缓存技术是提高应用程序性能的关键技术之一,它通过存储频繁访问的数据,减少了对慢速资源(如磁盘或远程...理解缓存的工作原理和应用场景,并合理配置与监控,是每个Java开发者必备的技能。

    面向 Java 开发人员的 Ajax: 使用 Jetty 和 Direct Web Remoting 编写可扩展的 Comet 应用程序

    面向Java开发人员的Ajax技术,特别是与Jetty服务器和Direct Web Remoting (DWR)框架的结合,为创建高性能、可扩展的Comet应用程序提供了强大的工具。Comet是一种Web交互模式,它允许服务器向客户端推送数据,而不...

    java web 技术文章

    在Java Web领域,开发者可以利用一系列技术和工具来创建动态、交互式的网站和应用。以下是一些关键的知识点: 1. **Servlet与JSP**:Servlet是Java EE中的核心组件,用于处理HTTP请求和响应。它们提供了服务器端的...

    基于Java web的一个结课作业-云借阅图书管理系统

    - **性能**:通过缓存机制减少数据库访问,使用负载均衡分发请求,优化数据库查询性能,合理设置session和cookie。 5. **开发工具与框架** - **IDE**:如Eclipse、IntelliJ IDEA等Java开发环境。 - **Tomcat**:...

    java web开发视屏下载地址

    根据提供的文件信息,我们可以归纳出一系列与Java Web开发相关的知识点,特别是针对视频教程中的项目案例。下面将详细探讨这些知识点: ...希望这些知识点能够帮助你更好地理解和掌握Java Web开发的核心技术。

    如何利用Java开发高性能、高并发Web应用

    - 对于频繁创建和销毁的短生命周期对象,可以考虑使用对象池技术,如`ThreadLocal`或自定义对象池,减少`new`操作和垃圾收集的压力。 8. **避免过度设计**: - 不要过早优化,确保代码清晰易读。但在性能关键路径...

    java-web聊天室源码

    - **Tomcat**:Java Web应用服务器,用于部署Servlet和JSP应用。 - **Apache或Nginx**:作为反向代理服务器,可能与PHP配合工作,提供静态资源服务。 通过深入研究这个源码,开发者可以学习到如何整合Java Web、...

    Java Web Start

    Java Web Start是一款由Oracle公司开发的Java应用程序启动技术,它允许用户通过Web浏览器无缝地下载、安装和运行Java应用程序。这个技术的核心理念是提供一种便捷的方式,使得用户无需关心应用程序的安装过程,只需...

    基于Java的Web应用系统开发模式分析.zip

    6. **性能优化**:包括缓存技术(如Redis、Ehcache),负载均衡(如Nginx、Apache),以及Tomcat服务器的配置优化等,都是提升Java Web应用性能的关键。 7. **持续集成/持续部署(CI/CD)**:Jenkins、GitLab CI/CD...

    arcgis-runtime-sdk-java-guide-100.4.0

    - 使用 SDK 提供的类来创建和显示地图。 - 可以自定义地图视图的各种属性,如缩放级别、中心位置等。 - **构建新地图:** - 创建新的地图实例,并添加所需的图层。 - 可以混合使用不同类型的图层,如在线地图...

Global site tag (gtag.js) - Google Analytics