in mode/cluster/repository/nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/NacosRepository.java [93:107]
private void initServiceMetaData() {
try {
String clusterIp = nacosProps.getValue(NacosPropertyKey.CLUSTER_IP);
String ip = Strings.isNullOrEmpty(clusterIp) ? IpUtils.getIp() : clusterIp;
serviceController = new ServiceController();
for (ServiceMetaData each : serviceController.getAllServices()) {
Integer port = client.getAllInstances(each.getServiceName(), false).stream()
.filter(instance -> ip.equals(instance.getIp())).map(Instance::getPort).max(Comparator.naturalOrder()).orElse(Integer.MIN_VALUE);
each.setIp(ip);
each.setPort(new AtomicInteger(port));
}
} catch (final NacosException ex) {
throw new ClusterRepositoryPersistException(ex);
}
}