第 7 章 远程创建缓存

当您使用 cache-service 远程创建缓存时,您可以将缓存配置为临时或永久数据,并在集群间复制数据。

当您使用 datagrid-service 远程创建缓存时,您可以定义任何自定义配置。

通过 Hot Rod 协议使用 cache-servicedatagrid-service 远程创建缓存定义,如下所示:

  1. 实例化 RemoteCacheManager 类以连接到该服务。
  2. 调用 createCache() 方法以创建缓存,如下例所示:

    private static void createCache(String appName) {
          //Connect to the Hot Rod service.
          final String host = appName;
          //Use the configuration bean.
          ConfigurationBuilder cfg = ...
    
          System.out.printf("--- Connecting to %s ---%n", appName);
    
          //Create a new RemoteCacheManager and start it.
          final RemoteCacheManager remote = new RemoteCacheManager(cfg.build());
    
          //Set a name for the cache.
          final String cacheName = "custom";
    
          System.out.printf("--- Creating cache in %s ---%n", appName);
    
          //Perform remote administration operations.
          remote.administration()
             //Include a flag to make the cache permanent.
             .withFlags(CacheContainerAdmin.AdminFlag.PERMANENT)
             //Create a cache on the remote server.
             //Pass null instead of XML to use the default cache configuration.
             .createCache(cacheName, null);
    
          System.out.printf("--- Cache '%s' created in '%s' ---%n", cacheName, appName);
    }
    注意

    如果指定缓存已存在,则抛出异常。其它方法是:

    • RemoteCacheManagerAdmin 中调用 getOrCreateCache 方法,返回缓存名称而不是抛出异常。
    • RemoteCacheManagerAdmin 中调用 removeCache 方法,以销毁缓存,然后再次调用 createCache