摘要:使用 Java™ 技术的 Web 开发人员可以使用缓存实用程序快速提升他们的应用程序的性能。Java 缓存系统(Java Caching System,JCS)是一个用于 Java 应用程序的强大分布式缓存系统,它是拥有简单 API 的高度可配置的工具。本文将概述 JCS 并展示如何使用它来提高 Web 应用程序的速度。
许多Web应用程序会根据桌面应用程序重新编写;理想情况下,这些应用程序的速度和可伸缩性应该与桌面版本一样。几乎所有 Web 应用程序都可以从速度方面的增长获益。缓存被频繁查看但很少更改的数据是一种减少用户等待时间的有效方式。一个实用程序可以帮您实现这个目标,它使用简单易用的 API 来轻松处理数据缓存。开放源码 JCS(即一个 Apache Jakarta 项目)就是这样一种工具。本文将说明如何配置和使用 JCS 来缓存 Web 应用程序的数据。
JCS 概述
JCS 是一个用 Java 语言编写的缓存系统,可以使用它来创建 Java 桌面和 Web 应用程序。它提供了在缓存器中存储数据、从缓存器中删除数据等方便机制。
使用 JCS 可以在各种指定的数据区域 中存储缓存数据。JCS 定义了 4 种类型的核心区域:内存区域、磁盘区域、外围区域和远程区域。可以结合使用这些核心区域以在如何存储缓存数据、将缓存数据存储在什么地方等方面获得更大的灵活性。您可以指定首次使用哪个区域,以及发生故障时转移到哪个区域。
JCS 的可插入控制器
JCS 通过组合缓存器(Composite Cache)让使用多个区域进行缓存存储变得很简单。组合缓存器为缓存区域提供了一个可插入控制器。组合缓存器仔细处理复杂的任务,即确定何时以及如何使用每个缓存区域。JCS 将完成大部分复杂的工作,开发人员只需关心获取和设置缓存。
内存区域
内存区域是一个使用最近最少算法(Least Recently Used,LRU)的纯内存缓存区域。当内存缓存区域满时,LRU 会首先删除最近最少使用的缓存数据。这个数据区域执行良好,大多数 JCS 用户将它指定为最先使用的默认缓存区域。
磁盘区域
磁盘区域是在 Web 服务器的文件磁盘上缓存数据。为了提高性能,JCS 在文件磁盘上存储实际缓存数据的同时,会在内存中存储缓存数据键。在首先使用内存区域的典型 JCS 配置中,任何无法在内存区域中保存的数据都会写入磁盘区域中。
外围区域
外围区域提供一种可配置方式来在多台服务器之间分发缓存数据。缓存数据服务器必须有一个开放的用于侦听的端口,而且必须创建一个套接字连接。这个区域存在一个潜在问题,因为它不能保证各缓存之间的数据的一致性。但如果是按计划使用该区域,则不会出现这个问题。
远程区域
远程区域提供了一个使用远程方法调用(RMI)API 的缓存区域。这个区域使用一台远程服务器处理缓存数据。这台远程缓存服务器可以被多个 JCS 客户端应用程序用于存储缓存数据。一些侦听器被定义用于收集来自客户端和服务器的请求。这个缓存区域帮助减少串行化和多个连接点的开销。