public HelixManager getZKHelixManager(String clusterName, String instanceName, InstanceType instanceType,
      String zkAddr, ClusterMapConfig clusterMapConfig) {
    ManagerKey managerKey = new ManagerKey(clusterName, instanceName, instanceType, zkAddr);
    return helixManagers.computeIfAbsent(managerKey,
        k -> buildZKHelixManager(clusterName, instanceName, instanceType, zkAddr, clusterMapConfig));
  }
Get a reference to a {@link HelixManager}
@param clusterName the name of the cluster for which the manager is to be gotten.
@param instanceName the name of the instance on whose behalf the manager is to be gotten.
@param instanceType the {@link InstanceType} of the requester.
@param zkAddr the address identifying the zk service to which this request is to be made.
@return the constructed {@link HelixManager}.
ambry-clustermap/src/main/java/com/github/ambry/clustermap/HelixFactory.java