在将条目放入缓存之前,如何检查与集群节点的连接?

How can I check connection to node of a cluster before putting a entry to cache?

我们使用 Infinispan 4.2.1 来组织一个由两个节点组成的集群。在将条目放入缓存之前,我们需要检查另一个节点的连接。我该怎么做?

您可以请求缓存的所有成员:

cache.getAdvancedCache().getRpcManager().getMembers()

对于具有节点 A 和 B 的集群,这将 return 一个包含

的列表
[A-44188, B-8820]

我是这样解决问题的:

JGroupsAddress myAddress = (JGroupsAddress)getInstance().cacheManager.getCache(cacheName).getAdvancedCache().getRpcManager().getAddress();
List members =getInstance().cacheManager.getCache(cacheName).getAdvancedCache().getRpcManager().getTransport().getMembers();
            if(members != null && members.size() > 2) {
                for(JGroupsAddress member : (List<JGroupsAddress>)members) {
                    if(!member.getJGroupsAddress().equals(myAddress.getJGroupsAddress())) {
                        return true;
                    }
                }
            }