private boolean isAvailable()

in mode/cluster/repository/nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/NacosRepository.java [339:351]


    private boolean isAvailable(final Collection<KeyValue> keyValues) throws NacosException {
        Map<Boolean, List<KeyValue>> keyValueMap = keyValues.stream().collect(Collectors.groupingBy(KeyValue::isEphemeral));
        for (Entry<Boolean, List<KeyValue>> entry : keyValueMap.entrySet()) {
            ServiceMetaData service = serviceController.getService(entry.getKey());
            Map<String, List<Instance>> instanceMap = client.getAllInstances(service.getServiceName(), false).stream().collect(Collectors.groupingBy(NacosMetaDataUtils::getKey));
            keyValues.removeIf(keyValue -> {
                String key = keyValue.getKey();
                String value = keyValue.getValue();
                return instanceMap.containsKey(key) ? instanceMap.get(key).stream().anyMatch(each -> Objects.equals(NacosMetaDataUtils.getValue(each), value)) : null == value;
            });
        }
        return keyValues.isEmpty();
    }