gpt4 book ai didi

org.apache.dubbo.registry.zookeeper.ZookeeperRegistry类的使用及代码示例

转载 作者:知者 更新时间:2024-03-13 09:57:25 26 4
gpt4 key购买 nike

本文整理了Java中org.apache.dubbo.registry.zookeeper.ZookeeperRegistry类的一些代码示例,展示了ZookeeperRegistry类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZookeeperRegistry类的具体详情如下:
包路径:org.apache.dubbo.registry.zookeeper.ZookeeperRegistry
类名称:ZookeeperRegistry

ZookeeperRegistry介绍

[英]ZookeeperRegistry
[中]ZookeeperRegistry

代码示例

代码示例来源:origin: apache/incubator-dubbo

@Override
public Registry createRegistry(URL url) {
  return new ZookeeperRegistry(url, zookeeperTransporter);
}

代码示例来源:origin: apache/incubator-dubbo

try {
  if (Constants.ANY_VALUE.equals(url.getServiceInterface())) {
    String root = toRootPath();
    ConcurrentMap<NotifyListener, ChildListener> listeners = zkListeners.get(url);
    if (listeners == null) {
          if (!anyServices.contains(child)) {
            anyServices.add(child);
            subscribe(url.setPath(child).addParameters(Constants.INTERFACE_KEY, child,
                Constants.CHECK_KEY, String.valueOf(false)), listener);
        service = URL.decode(service);
        anyServices.add(service);
        subscribe(url.setPath(service).addParameters(Constants.INTERFACE_KEY, service,
            Constants.CHECK_KEY, String.valueOf(false)), listener);
    for (String path : toCategoriesPath(url)) {
      ConcurrentMap<NotifyListener, ChildListener> listeners = zkListeners.get(url);
      if (listeners == null) {
        listeners.putIfAbsent(listener, (parentPath, currentChilds) -> ZookeeperRegistry.this.notify(url, listener, toUrlsWithEmpty(url, parentPath, currentChilds)));
        zkListener = listeners.get(listener);
      List<String> children = zkClient.addChildListener(path, zkListener);
      if (children != null) {
        urls.addAll(toUrlsWithEmpty(url, path, children));
    notify(url, listener, urls);

代码示例来源:origin: apache/incubator-dubbo

public ZookeeperRegistry(URL url, ZookeeperTransporter zookeeperTransporter) {
  super(url);
  if (url.isAnyHost()) {
    throw new IllegalStateException("registry address == null");
  }
  String group = url.getParameter(Constants.GROUP_KEY, DEFAULT_ROOT);
  if (!group.startsWith(Constants.PATH_SEPARATOR)) {
    group = Constants.PATH_SEPARATOR + group;
  }
  this.root = group;
  zkClient = zookeeperTransporter.connect(url);
  zkClient.addStateListener(state -> {
    if (state == StateListener.RECONNECTED) {
      try {
        recover();
      } catch (Exception e) {
        logger.error(e.getMessage(), e);
      }
    }
  });
}

代码示例来源:origin: apache/incubator-dubbo

private String toServicePath(URL url) {
  String name = url.getServiceInterface();
  if (Constants.ANY_VALUE.equals(name)) {
    return toRootPath();
  }
  return toRootDir() + URL.encode(name);
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void doUnregister(URL url) {
  try {
    zkClient.delete(toUrlPath(url));
  } catch (Throwable e) {
    throw new RpcException("Failed to unregister " + url + " to zookeeper " + getUrl() + ", cause: " + e.getMessage(), e);
  }
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public List<URL> lookup(URL url) {
  if (url == null) {
    throw new IllegalArgumentException("lookup url == null");
  }
  try {
    List<String> providers = new ArrayList<>();
    for (String path : toCategoriesPath(url)) {
      List<String> children = zkClient.getChildren(path);
      if (children != null) {
        providers.addAll(children);
      }
    }
    return toUrlsWithoutEmpty(url, providers);
  } catch (Throwable e) {
    throw new RpcException("Failed to lookup " + url + " from zookeeper " + getUrl() + ", cause: " + e.getMessage(), e);
  }
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void doUnsubscribe(URL url, NotifyListener listener) {
  ConcurrentMap<NotifyListener, ChildListener> listeners = zkListeners.get(url);
  if (listeners != null) {
    ChildListener zkListener = listeners.get(listener);
    if (zkListener != null) {
      if (Constants.ANY_VALUE.equals(url.getServiceInterface())) {
        String root = toRootPath();
        zkClient.removeChildListener(root, zkListener);
      } else {
        for (String path : toCategoriesPath(url)) {
          zkClient.removeChildListener(path, zkListener);
        }
      }
    }
  }
}

代码示例来源:origin: apache/incubator-dubbo

private String toCategoryPath(URL url) {
  return toServicePath(url) + Constants.PATH_SEPARATOR + url.getParameter(Constants.CATEGORY_KEY, Constants.DEFAULT_CATEGORY);
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void destroy() {
  super.destroy();
  try {
    zkClient.close();
  } catch (Exception e) {
    logger.warn("Failed to close zookeeper client " + getUrl() + ", cause: " + e.getMessage(), e);
  }
}

代码示例来源:origin: apache/incubator-dubbo

private String toUrlPath(URL url) {
  return toCategoryPath(url) + Constants.PATH_SEPARATOR + URL.encode(url.toFullString());
}

代码示例来源:origin: org.apache.dubbo/dubbo

@Override
  public void childChanged(String parentPath, List<String> currentChilds) {
    for (String child : currentChilds) {
      child = URL.decode(child);
      if (!anyServices.contains(child)) {
        anyServices.add(child);
        subscribe(url.setPath(child).addParameters(Constants.INTERFACE_KEY, child,
            Constants.CHECK_KEY, String.valueOf(false)), listener);
      }
    }
  }
});

代码示例来源:origin: apache/incubator-dubbo

@Override
public List<URL> lookup(URL url) {
  if (url == null) {
    throw new IllegalArgumentException("lookup url == null");
  }
  try {
    List<String> providers = new ArrayList<>();
    for (String path : toCategoriesPath(url)) {
      List<String> children = zkClient.getChildren(path);
      if (children != null) {
        providers.addAll(children);
      }
    }
    return toUrlsWithoutEmpty(url, providers);
  } catch (Throwable e) {
    throw new RpcException("Failed to lookup " + url + " from zookeeper " + getUrl() + ", cause: " + e.getMessage(), e);
  }
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void doUnregister(URL url) {
  try {
    zkClient.delete(toUrlPath(url));
  } catch (Throwable e) {
    throw new RpcException("Failed to unregister " + url + " to zookeeper " + getUrl() + ", cause: " + e.getMessage(), e);
  }
}

代码示例来源:origin: apache/incubator-dubbo

private String toServicePath(URL url) {
  String name = url.getServiceInterface();
  if (Constants.ANY_VALUE.equals(name)) {
    return toRootPath();
  }
  return toRootDir() + URL.encode(name);
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void doUnsubscribe(URL url, NotifyListener listener) {
  ConcurrentMap<NotifyListener, ChildListener> listeners = zkListeners.get(url);
  if (listeners != null) {
    ChildListener zkListener = listeners.get(listener);
    if (zkListener != null) {
      if (Constants.ANY_VALUE.equals(url.getServiceInterface())) {
        String root = toRootPath();
        zkClient.removeChildListener(root, zkListener);
      } else {
        for (String path : toCategoriesPath(url)) {
          zkClient.removeChildListener(path, zkListener);
        }
      }
    }
  }
}

代码示例来源:origin: apache/incubator-dubbo

private String toCategoryPath(URL url) {
  return toServicePath(url) + Constants.PATH_SEPARATOR + url.getParameter(Constants.CATEGORY_KEY, Constants.DEFAULT_CATEGORY);
}

代码示例来源:origin: apache/incubator-dubbo

@Override
public void destroy() {
  super.destroy();
  try {
    zkClient.close();
  } catch (Exception e) {
    logger.warn("Failed to close zookeeper client " + getUrl() + ", cause: " + e.getMessage(), e);
  }
}

代码示例来源:origin: apache/incubator-dubbo

private String toUrlPath(URL url) {
  return toCategoryPath(url) + Constants.PATH_SEPARATOR + URL.encode(url.toFullString());
}

代码示例来源:origin: org.apache.dubbo/dubbo-registry-zookeeper

@Override
  public void childChanged(String parentPath, List<String> currentChilds) {
    for (String child : currentChilds) {
      child = URL.decode(child);
      if (!anyServices.contains(child)) {
        anyServices.add(child);
        subscribe(url.setPath(child).addParameters(Constants.INTERFACE_KEY, child,
            Constants.CHECK_KEY, String.valueOf(false)), listener);
      }
    }
  }
});

代码示例来源:origin: apache/incubator-dubbo

try {
  if (Constants.ANY_VALUE.equals(url.getServiceInterface())) {
    String root = toRootPath();
    ConcurrentMap<NotifyListener, ChildListener> listeners = zkListeners.get(url);
    if (listeners == null) {
          if (!anyServices.contains(child)) {
            anyServices.add(child);
            subscribe(url.setPath(child).addParameters(Constants.INTERFACE_KEY, child,
                Constants.CHECK_KEY, String.valueOf(false)), listener);
        service = URL.decode(service);
        anyServices.add(service);
        subscribe(url.setPath(service).addParameters(Constants.INTERFACE_KEY, service,
            Constants.CHECK_KEY, String.valueOf(false)), listener);
    for (String path : toCategoriesPath(url)) {
      ConcurrentMap<NotifyListener, ChildListener> listeners = zkListeners.get(url);
      if (listeners == null) {
        listeners.putIfAbsent(listener, (parentPath, currentChilds) -> ZookeeperRegistry.this.notify(url, listener, toUrlsWithEmpty(url, parentPath, currentChilds)));
        zkListener = listeners.get(listener);
      List<String> children = zkClient.addChildListener(path, zkListener);
      if (children != null) {
        urls.addAll(toUrlsWithEmpty(url, path, children));
    notify(url, listener, urls);

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com