JCS是一个用java编写的分布式缓存系统。它被设计用来加速应用程序,通过提供一个手段来管理多种变化种类的缓存数据。像其它缓存系统一样,JCS对高读(high read)、低放(low put)的应用程序非常有用。<br>JCS超越了简单地在内存中缓存对象的功能。它提供了许多附加的功能: <br>● 内存管理 <br>● 磁盘溢位(和碎片整理) <br>● 线程池控制 <br>● 元素分组 <br>● 最少的依赖 <br>● 快速嵌套的直接了当的删除 <br>● 数据超期(空闲时间和最大文件) <br>● 可扩展的框架 <br>● 完全可配置的运行时参数 <br>● 局部数据分割和配置 <br>● 纤细粒度的元素配置选项 <br>● 远程同步 <br>● 远程存储恢复 <br>● 非阻塞 "zombie" (balking facade(等待外观)) 模式 <br>● 横向的元素分发经由HTTP、TCP或者 UDP <br>● 其它缓存的UDP发现 <br>● 元素事件处理 <br>● 远程服务器链锁(或者说集群)和容错 **JCS实践详解** JCS,全称Java Caching System,是一个基于Java开发的分布式缓存系统,旨在提升应用程序的性能,特别是在高读取、低写入场景下。JCS不仅提供基本的内存缓存功能,还具备丰富的高级特性,如内存管理、磁盘溢出处理、线程池控制等,使其成为一种强大的缓存解决方案。 **1. 缓冲区(Region)的概念与编程** - **缓冲区**: 在JCS中,缓冲区是内存中用于临时存储缓存对象的区域。每个缓冲区都有独特的属性,如大小、超时时间及架构。不同类型的对象应分配到不同的缓冲区,以满足特定需求。缓冲区以字符串标识,建议使用英文且避免空格和特殊字符。 - **缓冲编程**: 获得缓冲区对象是通过缓冲区的名称,例如`JCS.getInstance("AccountObjectCache")`。使用`put`方法添加对象到缓存,`get`方法获取对象。注意,JCS并不保证能一直返回存储的对象,因为它们可能因配置策略(如超时或空间限制)被清除。 **2. 缓冲区配置** - **配置灵活性**: JCS允许通过配置文件调整缓冲区特性,包括内存大小、超时时间等。默认配置可以在`WEB-INF/classes/cache.ccf`找到,每个缓冲区可以有独立设置。配置选项还包括附加的辅助缓存,如硬盘、网络或其他存储介质。 - **内存与硬盘缓冲**: 在内存充足时,通常仅使用内存缓冲即可满足需求。在分布式环境中,可以考虑配置硬盘或网络缓冲,但其性能相对较慢。 **3. JCS后台控制** - **监控与管理**: JCS提供了一个名为`JCSAdminServlet`的后台控制Servlet,允许查看缓存状态、清理缓存或特定对象。通过在web.xml中配置该Servlet,可以实现这些功能。 **4. 内部构造** - **访问接口**: JCS的核心组件包括访问接口,如`CacheAccess`和`GroupCacheAccess`,它们提供了缓存操作的基本API,如`put`和`get`方法。 - **缓冲引擎**: 缓冲引擎负责实际的缓存管理和策略执行,如决定何时将数据移出内存或写入辅助缓存。 - **辅助缓冲**: 辅助缓冲是JCS的关键特性,支持将数据溢出到磁盘、其他服务器或网络,以扩展缓存能力。 **5. 分布式缓存与容错** - **分布式特性**: JCS支持分布式缓存,允许在多台机器间共享缓存数据,实现负载均衡和故障恢复。然而,其分布式缓存功能可能存在不稳定性,因此在某些项目(如Hibernate)中可能未启用此功能。 总结来说,JCS是一个强大且灵活的缓存系统,提供内存、磁盘和网络的多层次缓存策略,通过配置可以适应各种应用场景。其内置的监控和管理工具以及丰富的API,使得开发者能够便捷地集成和优化缓存策略,提高系统的响应速度和整体性能。
- karlhell2011-10-14不错的文档,给满分。能配合项目代码就更好了
- 粉丝: 1578
- 资源: 22
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- asm-西电微机原理实验
- Arduino-arduino
- C语言-leetcode题解之70-climbing-stairs.c
- C语言-leetcode题解之68-text-justification.c
- C语言-leetcode题解之66-plus-one.c
- C语言-leetcode题解之64-minimum-path-sum.c
- C语言-leetcode题解之63-unique-paths-ii.c
- C语言-leetcode题解之62-unique-paths.c
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c