JGroups的功能列出可用的组或集群

问题描述:

我有一系列的相互使用的JGroups库通信的客户端,他们基本上建立连接到群集名称的通信信道:JGroups的功能列出可用的组或集群

communicationChannel = new JChannel(AutoDiscovery.class.getResource("/resource/udp.xml")); 
communicationChannel.connect("cluster1"); 

现在我想他们首先列出要连接的可用群集,并让用户决定连接到哪个群集,而不用硬连线代码中的群集名称。 显然,API有getName(),如果设置了返回通道的逻辑名称,但没有检索设置集群的方法。

我虽然使用org.jgroups.Message.getHeaders()并读取标题将产生活动的集群,但没有。 请帮忙吗?

没有办法找到当前可用的群集,我建议保留一些额外的状态,它存储(内存中)所有群集名称及其相关配置。

一旦你可以做的事情是开发一个自定义协议(插入它下面的GMS),它会做到以下几点: - 追赶(Event evt):if evt.getType()== Event.CONNECT *** (4个事件),获取集群名称((String)evt.getArg())并将其添加到集合中 - 捕获(Event evt):if evt.getType()== Event.DISCONNECT,获取当前集群名称并将其从集合中删除

这不会给你配置信息;如果您继承JChannel并覆盖connectXXX()和disconnect(),您也可以获得此信息。