Ehcache 2.0: 后写式缓存和 JTA 支持

  • Srini Penchikala
  • 崔康

2010 年 5 月 16 日

话题:Java语言 & 开发架构

开源缓存框架Ehcache最新版本支持后写式缓存和利用 Java Transaction API (JTA)进行事务管理,同时还提供了 Hibernate 3.3 缓存插件、针对集群缓存的批量加载 API和运行时缓存重配置机制。

Ehcache 2.0 引入了直写式(write-through)和后写式(write-behind)缓存。直写式缓存模式被用于将数据写入底层资源(如数据库)的缓存。这种缓存成为底层资源的一种外表接口(facade)。后写式缓存模式使用相同的客户端 API,但是写入采取异步方式。后写式缓存特性作为新 Ehcache API 的一部分,适用于对数据库的异步批量更新。

事务管理:新的JTA 支持特性允许缓存在 JTA 事务中以 XA 资源的形式存在。它自动按顺序检测和使用下列事务管理器:通用 JNDI(如GlassfishJBossWeblogicJTOM)、 WebSphereBitronix JTA 事务管理器和Atomikos。Ehcache 2.0 对于 Hibernate 来说不是事务型缓存。Ehcache 2.1(刚发布 beta 版)提供了针对 Hibernate 的 JTA 支持。

Ehcache 2.0 还提供了一种快捷模式通过配置变化集群化应用数据,不论数据在 Hibernate 中、分布式缓存中还是 session 对象。它支持把分布式缓存作为 Hibernate 的第二级缓存,也可以直接使用Ehcache API。在本地和分布式实现之间切换通过配置变化来完成。其他功能还包括:

  • 批量加载:批量加载模式用于通过 Terracotta Server Array 向缓存加载数据。该选项可用于缓存预热(在应用上线之前填满缓存)和定期的批量加载。
  • 配置管理:支持 Ehcache 的动态配置,缓存参数如 Time-To-Idle (TTI) 和 Time-To-Live (TTL) 等可以通过 Terracotta 管理控制台或者其他 JMX 兼容工具来更改。
  • Web sessions:升级 Terracotta Web Sessions 产品(名为 Terracotta Express Web Sessions),提供 web 应用中的 HTTP session 集群化。
  • TC Server Array:Terracotta Server Array (TSA) 被重构以提供集群一致性、高可用性和持久性。
  • OSGI:支持OSGi容器。

Ehcache 2.0 支持 Java EE 容器,如 WebLogic、Tomcat、JBoss 和Jetty。在一则相关新闻中,Ehcache 团队还发布了Ehcache Server以提供 RESTful 和 SOAP API 给 Ehcache 框架。

查看英文原文Ehcache 2.0: Write-Behind Caching and JTA Support

Java语言 & 开发架构