code: protected void subscribeConsumerUrls(ConsumerConfig config) {
          // 注册Consumer节点
          String url = null;
          if (config.isRegister()) {
              try {
                  String consumerPath = buildConsumerPath(rootPath, config);
                  if (consumerUrls.containsKey(config)) {
                      url = consumerUrls.get(config);
                  } else {
                      url = ZookeeperRegistryHelper.convertConsumerToUrl(config);
                      consumerUrls.put(config, url);
                  }
                  String encodeUrl = URLEncoder.encode(url, "UTF-8");
                  getAndCheckZkClient().create().creatingParentContainersIfNeeded()
                      .withMode(CreateMode.EPHEMERAL) // Consumer临时节点
                      .forPath(consumerPath + CONTEXT_SEP + encodeUrl);
  
              } catch (KeeperException.NodeExistsException nodeExistsException) {
                  if (LOGGER.isWarnEnabled()) {
                      LOGGER.warn("consumer has exists in zookeeper, consumer=" + url);
                  }
              } catch (Exception e) {
                  throw new SofaRpcRuntimeException("Failed to register consumer to zookeeperRegistry!", e);
              }
          }
      }
docs: *
  订阅
  @param config