@Override
        public void notify(final Map<ServiceHealthKey, ServiceHealth> newValues) {
            try {
                if (newValues.size() > 0) {
                    List<RemoteInstance> remoteInstances = new ArrayList<>(newValues.size());
                    newValues.values().forEach(serviceHealth -> {
                        if (StringUtil.isNotBlank(serviceHealth.getService().getAddress())) {
                            RemoteInstance remoteInstance = buildRemoteInstance(
                                serviceHealth.getService().getAddress(), serviceHealth.getService().getPort());
                            remoteInstances.add(remoteInstance);
                        }
                    });
                    checkHealth(remoteInstances);
                    notifyWatchers(remoteInstances);
                }
            } catch (Throwable e) {
                healthChecker.unHealth(e);
                log.error("Failed to notify and update remote instances.", e);
            }
        }
Notice: If the consul version > v1.10.0, the `consul-client ConsulCache` will throw error response:
"com.orbitz.consul.ConsulException: Consul cluster has no elected leader" and fails to retrieve data.
This is a known issue but doesn't release yet, can refer to: https://github.com/rickfast/consul-client/pull/456
oap-server/server-cluster-plugin/cluster-consul-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ConsulCoordinator.java