@Override
  protected Set<ServerName> getBootstrapNodes(Configuration conf) throws IOException {
    // try get bootstrap nodes config first
    String configuredBootstrapNodes = conf.get(BOOTSTRAP_NODES);
    if (!StringUtils.isBlank(configuredBootstrapNodes)) {
      return Splitter.on(ADDRS_CONF_SEPARATOR).trimResults().splitToStream(configuredBootstrapNodes)
        .map(addr -> ServerName.valueOf(addr, ServerName.NON_STARTCODE))
        .collect(Collectors.toSet());
    } else {
      // otherwise, just use master addresses
      return MasterRegistry.parseMasterAddrs(conf);
    }
  }
As end users could configure any nodes in a cluster as the initial bootstrap nodes, it is
possible that different end users will configure the same machine which makes the machine over
load. So we should have a shorter delay for the initial refresh, to let users quickly switch to
the bootstrap nodes we want them to connect to.
<p/>
The default value for initial refresh delay is 1/10 of periodic refresh interval.
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RpcConnectionRegistry.java