使用JCS在Web门户应用中实现对象缓存(2)

原创 2004年04月22日 14:51:00

缓存架构<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

有很多种对象缓存架构(包括开放源代码的和商业的实现)在servlet容器和应用服务器中提供了分布式缓存。下面列出了一些现在可以使用的缓存框架:

开放源代码项目

  • 来自于JakartaJava Caching System (JCS) (属于Turbine项目的一部分)

  • OSCache

  • Commons Collections (另一个Jakarta 项目)

  • JCache API (SourceForge.net)

商业项目

  • SpiritCache (来自于 SpiritSoft).

  • Coherence (Tangosol)

  • Javlin (eXcelon)

  • Object Caching Service for Java (Oracle)

如果你还有兴趣了解更多的缓存实现,本文最后的资源一节提供了所有这些框架的URL

我在最初开始我对能满足我们所有的缓存需求的框架进行研究的时候,我先看到了Commons Collections Java Caching System API 。我在最开始评估的主要标准就是容易使用、容易扩展,以及软件的成本。这两个框架都是开放源代码的,并且都来自于Apache Jakarta项目。

Commons Collections

Commons Collections API 以一个Java类的形式提供了对象缓存算法,名称为LRUMap。如果你对缓存只有基本的需求,并且不是真正需要很多的扩展和缓存配置功能,那么Commons Collections 可能是一个不坏的选择,但不是作为一个企业级缓存系统的正确选择。如果你选择Common Collections来实现对象缓存,你将会手工定义/配置所有的缓存参数,如:最大缓存对象的数量,一个缓存对象的最长生命周期,刷新缓存或检查对象新鲜的中断时间等。

Java Caching System

Java Caching System (JCS) Jakarta Turbine 项目的一部分, 与Commons Collections相比更有成熟、更具扩展性。通过为频繁访问的对象维护动态对象池的方法,它提供了提升整个系统性能的灵活、可配置的解决方案。就像在它的网站上提到的,JCS 已经超越了简单地在内存中缓存对象的范围。它为一个企业级的缓存系统提供了许多必需的重要功能:

  • 内存管理

  • Disk overflow (和重整)

  • 元素分组

  • 快速嵌套地移除

  • 数据期限管理

  • 可扩展的框架

  • 完全可配置的运行时参数

  • 远程同步

  • 远程存储恢复

  • 通过HTTPTCP或者UDP协议实现可选的横向分布元素。

JCS 提供了无故障点的框架, 允许完全的session失败转移(在集群环境中),包括支持最多到256个服务器的session数据分布。它也提供了配置一个或多个数据存储选项的灵活性,例如:内存缓存、磁盘缓存,或者在远程机器上的缓存。

所有这些包括在JCS中的优秀功能让它成为满足我们的web门户项目的一个优秀的对象缓存产品选择

使用JCS构造Web 门户缓存框架

缓存框架的目标

在我开始设计对象缓存框架之前,我首先列出了在新的框架中需要达到的目标。以下就是目标的列表:

  • web门户应用中快速访问频繁使用的数据。

  • 将缓存中类型类似的对象进行组合。

  • 提供可配置的缓存管理,以便我可以通过描述方式而不是编码方式修改参数。

  • 提供可靠的和可扩展的框架,以便我将来可以转换到其它第三方的缓存API

  • 可以生成统计数据来监测缓存的效率,以及使用数据缓存后应用性能的提升效果。

安装和配置

web应用中安装和配置JCS是非常简单的事情。从Jakarta Turbine网站下载压缩文件,解压缩文件到临时目录,并拷贝JSC.jar文件(jcs-1.0-dev.jar)到servlet容器的通用目录(在我的web应用中使用的servlet容器是Tomcat,通用目录在windows下就是%TOMCAT_HOME%/common/lib,在再Unix类型的系统下就是$TOMCAT_HOME/common/lib)。你可能还需要commons-collections.jar, commons-lang.jar, commons-logging.jar 这些文件存在于web应用的类路径下以便使用JCS

对象缓存框架的主要原理在图1和图2UML图中展示出来了

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />CSDN_Dev_Image_2004-4-221359320.gif
1. 对象缓存序列图

CSDN_Dev_Image_2004-4-221359322.gif
2. 对象缓存类图

使用JCS在Web门户应用中实现对象缓存(1)

使用JCS在Web门户应用中实现对象缓存在我最近的web门户应用开发工作中,我们需要在Servlet容器(Tomcat)的内存中存储一些查找数据(例如:比率更新数据、状态和产品列表),这样我们不需要在...
  • ah_cai
  • ah_cai
  • 2004年04月22日 14:50
  • 1289

使用JCS在Web门户应用中实现对象缓存(3)

框架的主要原理缓存属性我们将所有的缓存参数配置在名为cache.ccf的属性文件中。这些参数包括缓存信息如:内存中存储的对象的最大数量,缓存时间(过了时间之后缓存的数据九自动从内存中释放),中断时间(...
  • ah_cai
  • ah_cai
  • 2004年04月22日 14:51
  • 2020

JCS 缓存

JCS 概述 JCS 是一个用 Java 语言编写的缓存系统,可以使用它来创建 Java 桌面和 Web 应用程序。它提供了在缓存器中存储数据、从缓存器中删除数据等方便机制。 使用 JCS...
  • sjzs5590
  • sjzs5590
  • 2012年08月21日 19:58
  • 1235

五步教你使用JCS快速搭建缓存环境

JCS是Jakarta的项目Turbine的子项目。它是一个复合式的缓冲工具。可以将对象缓冲到内存、硬盘。具有缓冲对象时间过期设定。还可以通过JCS构建具有缓冲的分布式构架,以实现高性能的应用。对于一...
  • u010405751
  • u010405751
  • 2013年05月22日 19:43
  • 565

jcs开源缓存框架介绍

JCS是Jakarta的项目Turbine的子项目。它是一个复合式的缓冲工具。可以将对象缓冲到内存、硬盘。具有缓冲对象时间过期设定。还可以通过JCS构建具有缓冲的分布式构架,以实现高性能的应用。对于一...
  • HUXU981598436
  • HUXU981598436
  • 2015年07月23日 11:15
  • 458

Web系统中缓存的应用

一、什么是缓存           缓存就是数据交换的缓冲区,在web系统中,从浏览器到服务器,从服务器到数据库,从服务器到资源服务器,每一步都可以设置缓存来避免直接的I/O操作,从而提高网站性...
  • wsdydmw
  • wsdydmw
  • 2015年07月29日 18:35
  • 1146

jcs缓存机制

JCS缓存介绍 1.     概要  JCS是Jakarta的项目Turbine的子项目,它是复合式的缓冲工具,具有配置灵活的特点。JCS提供内存、硬盘、分布式架构、构建缓存服务器四种方式来实现对...
  • wby__2005
  • wby__2005
  • 2013年11月27日 15:14
  • 454

JCS和Redis

在执行应用程序的时候,若数据库进行读操作时,在中间增加一些缓存来提高效率。 一般将配置数据进行加入缓存,缓存一般有两种类型 A:JCS B:Redis...
  • u011344885
  • u011344885
  • 2016年07月30日 11:30
  • 255

Web前端离线缓存应用

项目中需要将在线的Web改造成支持离线版本的Web应用,思考了四种方法: 1.Manifest文件 它的特点有以下三点: 1.1 Manifest文件有变化才有更新 1.2一次必须更新完Man...
  • z127688
  • z127688
  • 2015年07月26日 18:34
  • 760

Web开发中关于缓存的使用

在Web Form开发中,发现有一个很好的东西叫ViewState,在封装好的空间中大量使用ViewSatate,特别是封装得越好,功能越强大的控件,ViewState使用越多,当然占用资源也越多。V...
  • ceclar123
  • ceclar123
  • 2014年01月02日 12:30
  • 922
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用JCS在Web门户应用中实现对象缓存(2)
举报原因:
原因补充:

(最多只允许输入30个字)