我在java中使用Infinispan和jgroups . 我想获取infinispan缓存集群中的所有缓存名称 . 我尝试过使用DefaultCacheManager.getCacheNames();但是它只提供了从中调用它的jvm访问的缓存,而不是该集群中的所有缓存 .
一旦我访问该jvm上的缓存,它就变得可用,它开始进入我从DefaultCacheManager.getCacheNames()获得的缓存列表;
我使用相同的配置文件infinispan和jgroups(使用tcp) .
请建议一种方法,以便我可以获取群集中的所有缓存名称 .
谢谢,Ankur
1 回答
嗯,通常你会在群集范围内定义所有缓存,因此在节点中获取缓存名称足以知道群集范围内可用的缓存 .
这似乎不是你的情况,所以我能想到的最简单的事情是在Infinispan中执行Map / Reduce功能,从集群中的各个节点检索缓存名称,然后整理它们 .
有关详细信息,请参阅https://docs.jboss.org/author/display/ISPN/Infinispan+Distributed+Execution+Framework和https://www.jboss.org/dms/judcon/presentations/Boston2011/JUDConBoston2011_day2track2session2.pdf