我正在开发一个 REST 应用程序来读取使用 J Cache 和 Hazel cast 3.3.3 的集群中的所有缓存
当我在应用程序中调用以下行时,此应用程序将创建另一个 hazel cast 节点:
cacheManager= Caching.getCachingProvider().getCacheManager();
该节点与已创建的节点聚集在一起。但是当我尝试使用以下命令获取集群的所有缓存名称时,它返回一个空的可迭代对象:
cacheManager.getCacheNames().iterator()
我浏览了 Jcache 的 Java 文档,其中包含:
可能无法提供由 CacheManager 管理的所有缓存。例如:可能不存在可通过调用 getCache(java.lang.String) 或 getCache(java.lang.String,java.lang.Class,java.lang.Class) 访问的内部定义或平台特定缓存在一次迭代中。
但是我尝试访问的缓存不是内部定义的或特定于平台的。它们由其他节点创建。
我想要一种方法来获取集群中存在的所有名称。有办法吗?
注意:应用程序中没有使用 hazelcast.xml。全部由默认的 xml 初始化。
更新:
如果我知道名称,我可以访问缓存。并且第一次直接给名字访问后,现在显示缓存在cacheManager.getCacheNames().iterator()