parent
60f7fd87a3
commit
9a4a7d6f42
@ -0,0 +1,41 @@
|
|||||||
|
package com.alibaba.cloud.nacos.discovery;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
import org.springframework.cloud.client.ServiceInstance;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Service cache.
|
||||||
|
* <p>
|
||||||
|
* Cache serviceIds and corresponding instances in Nacos.
|
||||||
|
*
|
||||||
|
* @author freeman
|
||||||
|
* @since 2022.0
|
||||||
|
*/
|
||||||
|
public class ServiceCache {
|
||||||
|
|
||||||
|
private static List<String> services = Collections.emptyList();
|
||||||
|
|
||||||
|
private static Map<String, List<ServiceInstance>> instancesMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
public static void setInstances(String serviceId, List<ServiceInstance> instances) {
|
||||||
|
instancesMap.put(serviceId, Collections.unmodifiableList(instances));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<ServiceInstance> getInstances(String serviceId) {
|
||||||
|
return Optional.ofNullable(instancesMap.get(serviceId)).orElse(Collections.emptyList());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void set(List<String> newServices) {
|
||||||
|
services = Collections.unmodifiableList(newServices);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<String> get() {
|
||||||
|
return services;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue