内容概要
本节更深入地介绍了 JBoss Cache 的架构,它适用于希望使用更高级的缓存功能、扩展或增强缓存、编写插件或了解底层运行机制的使用着。
JBossCache 里的数据结构
JBossCache 由以树型结构组织的 Node 实例集合组成。每个 Node 都包含一个保存要缓存的数据对象的表。请注意,这个结构是一种数学树,并非图形;每个 Node 都有且只有一个父节点,且根节点由一个不变的全限定名 Fqn.ROOT 表示。
在上面的图表里,每个方块都代表一个 JVM。你可以看到两个缓存位于不同的 JVM 里,彼此复制数据。在其中一个缓存里的任何修改都将复制到另外一个缓存里。自然,集群系统可以有多个缓存。根据事务性设置,复制将在每次修改发生后或事务结束后(提交时)进行。当新的缓存被创建时,它可以在启动时获取某个现有缓存的内容。
SPI接口
除了 Cache 和 Node 接口,JBossCache 也开放更强大的 CacheSPI 和 NodeSPI 接口,它们提供对 JBossCache 内部更多的控制。这些接口不是用于普通用途,它们适用于扩展和增加 JBossCache 、编写自定义的拦 截 器 (Interceptor) 或类加载器 (CacheLoader) 实例。
CacheSPI接口无法被创建,但它靠这些接口的 setCache(CacheS