第 2 章 缓存管理器
Data Grid 的主要入口点是可让您访问的 CacheManager
接口:
- 配置并获取缓存。
- 管理和监控集群数据网格节点。
- 在集群中执行代码。
如果您在应用程序中嵌入了 Data Grid,则使用 EmbeddedCacheManager
。如果您将 Data Grid 作为远程服务器运行,请使用 RemoteCacheManager
。
缓存管理器是重量的对象,在大多数情形中,您应该在每个 JVM 中仅实例化一个 CacheManager
实例。
EmbeddedCacheManager manager = new DefaultCacheManager(); 1
- 1
- 启动没有缓存的本地非集群缓存管理器。
缓存管理器的生命周期以及默认构造器也调用 start ()
方法。构造器的超载版本可用,但它们不会启动 CacheManager
。但是,您必须在创建缓存前始终启动 CacheManager
。
同样,当您不再需要运行 CacheManager
时,您必须调用 stop ()
,以便其释放资源。这也可确保 Cache Manager 安全地停止其控制的任何缓存。
2.1. 获取缓存
配置 CacheManager
后,您可以获取和控制缓存。
调用 getCache (String)
方法以获取缓存,如下所示:
Cache<String, String> myCache = manager.getCache("myCache");
前面的操作会创建一个名为 myCache
的缓存(如果尚未存在),并返回它。
使用 getCache ()
方法仅在您调用方法的节点上创建缓存。换句话说,它会执行一个本地操作,它必须在集群中的每个节点上调用。通常,在多个节点间部署的应用程序会在初始化过程中获取缓存,以确保缓存都是 对称的,并在每个节点上存在。
调用 createCache ()
方法,以在整个集群中动态创建缓存,如下所示:
Cache<String, String> myCache = manager.administration().createCache("myCache", "myTemplate");
前面的操作还会在随后加入集群的任何节点上自动创建缓存。
默认情况下,您使用 createCache ()
方法创建的缓存是临时的。如果整个集群关闭,则缓存重启后不会自动创建。
使用 PERMANENT 标志来确保缓存可以在重启后保留,如下所示:
Cache<String, String> myCache = manager.administration().withFlags(AdminFlag.PERMANENT).createCache("myCache", "myTemplate");
要使 PERMANENT 标志生效,您必须启用全局状态并设置配置存储提供程序。
有关配置存储供应商的更多信息,请参阅 GlobalStateConfigurationBuilder#configurationStorage ()。