背景:主干业务,需要开发新的平台,在主干有对应的业务对接到新平台。检测应用的状态,是否启动 并UP如何启动则可以访问,否则提示该服务平台未启动。
代码如下即可获取。其中注意,是 org.springframework.cloud.client.discovery.DiscoveryClient
而不是 com.netflix.discovery.DiscoveryClient;
package com.boco.wbs.common;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Component;
@Component
public class ApplicationUtil {
@Autowired
private DiscoveryClient discoveryClient;
public Map<String, List<ServiceInstance>> serviceUrl() {
Map<String, List<ServiceInstance>> msl = new HashMap<String, List<ServiceInstance>>();
List<String> services = discoveryClient.getServices();
for (String service : services) {
List<ServiceInstance> sis = discoveryClient.getInstances(service);
msl.put(service, sis);
}
return msl;
}
public boolean isExitservice(String applicationName) {
List<String> services = discoveryClient.getServices();
for (String service : services) {
if(service.toUpperCase().equals(applicationName.toUpperCase())) {
return true;
}
}
return false;
}
}