1. 网上获取方式
@Autowired
private DiscoveryClient discoveryClient;
List<List<ServiceInstance>> servicesList = new ArrayList<>();
//获取服务名称
List<String> serviceNames = discoveryClient.getServices();
此方式经验证,不适用于服务端获取列表;
2. 正确获取方式
List<Application> applications = EurekaServerContextHolder.getInstance().getServerContext().getRegistry().getSortedApplications();
// 判断SMC是否启动,使用标记控制唯一节点启动
for (Application application : applications) {
String name = application.getName();
}
}
版本:
springCloud:Greenwich.SR6;
springBoot:2.1.18;
关键方法:
EurekaServerContextHolder.getInstance().getServerContext().getRegistry().getSortedApplications();