【问题标题】:HazelCast get all distributed map namesHazelCast 获取所有分布式地图名称
【发布时间】:2016-01-14 06:15:36
【问题描述】:

现在我们正在使用默认选项 .getMap() 创建地图。我们不使用 getConfig().addMapConfig 选项,因为我们希望避免检查地图是否为空等,以避免每次需要访问地图时调用此代码(由接口 getMap() 抽象的客户端代码)。

现在的问题是,如果我们想销毁某些地图,我们希望遍历所有地图名称并仅销毁符合特定条件的地图。由于我们不添加到 MapConfig,我们无法使用 getConfig().getMapConfigs().keyset() 来获取地图名称。

现在我们正在尝试使用 .getDistributedObjects() 进行迭代。唯一担心的是分布式对象作为一个整体加载到内存中(我希望不是..),或者只是加载到 DistributedObject 引用中的 ID 和名称(如代理)。我无法从代码中弄清楚。这样做是个好主意还是有更好的方法来获取地图对象引用。请帮忙

【问题讨论】:

    标签: hazelcast hazelcast-imap


    【解决方案1】:

    HazelcastInstance::getDistributedObjects 只是调用所有本地已知的代理对象,但是这些都是集群已知的对象。在客户端上,这些信息是使用集群本身内部的服务器节点请求的。因此,迭代这些代理对象并测试它们的类型是安全的。

    【讨论】:

      【解决方案2】:

      作为 noctarius stated(如果我理解正确的话)应该安全地遍历 getDistributedObjects() 的返回然后获取我们想要处理的相关数据。也许这样的事情可以完成这项工作:

      import com.hazelcast.client.HazelcastClient;
      import com.hazelcast.core.DistributedObject;
      import com.hazelcast.core.HazelcastInstance;
      import com.hazelcast.core.IMap;
      
      import java.util.Collection;
      
      public class HazelcastMapsTest {
      
          public static void main(String[] args) {
      
              HazelcastInstance hazelcastInstance = HazelcastClient.newHazelcastClient();
      
              Collection<DistributedObject> distributedObjects = hazelcastInstance.getDistributedObjects();
              for (DistributedObject object : distributedObjects) {
                  if (object instanceof IMap) {
                      IMap map = hazelcastInstance.getMap(object.getName());
                      System.out.println("Mapname=" + map.getName());
                      map.entrySet().forEach(System.out::println);
                  }
              }
      
              hazelcastInstance.shutdown();
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-15
        • 1970-01-01
        相关资源
        最近更新 更多