diff --git a/sop-admin/sop-admin-server/pom.xml b/sop-admin/sop-admin-server/pom.xml index c71269bc..8411e651 100644 --- a/sop-admin/sop-admin-server/pom.xml +++ b/sop-admin/sop-admin-server/pom.xml @@ -36,12 +36,6 @@ 0.2.3 - - com.gitee.sop - sop-registry-api - 2.0.0-SNAPSHOT - - net.oschina.durcframework @@ -55,6 +49,12 @@ 1.8.1 + + com.squareup.okhttp3 + okhttp + ${okhttp.version} + + mysql mysql-connector-java diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/service/ServiceApi.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/service/ServiceApi.java index d6fd79cf..f4160a25 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/service/ServiceApi.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/service/ServiceApi.java @@ -18,6 +18,8 @@ import com.gitee.sop.adminserver.bean.ChannelMsg; import com.gitee.sop.adminserver.bean.MetadataEnum; import com.gitee.sop.adminserver.bean.NacosConfigs; import com.gitee.sop.adminserver.bean.ServiceGrayDefinition; +import com.gitee.sop.adminserver.bean.ServiceInfo; +import com.gitee.sop.adminserver.bean.ServiceInstance; import com.gitee.sop.adminserver.common.BizException; import com.gitee.sop.adminserver.common.ChannelOperation; import com.gitee.sop.adminserver.common.StatusEnum; @@ -26,9 +28,7 @@ import com.gitee.sop.adminserver.entity.ConfigGrayInstance; import com.gitee.sop.adminserver.mapper.ConfigGrayInstanceMapper; import com.gitee.sop.adminserver.mapper.ConfigGrayMapper; import com.gitee.sop.adminserver.service.ConfigPushService; -import com.gitee.sop.registryapi.bean.ServiceInfo; -import com.gitee.sop.registryapi.bean.ServiceInstance; -import com.gitee.sop.registryapi.service.RegistryService; +import com.gitee.sop.adminserver.service.RegistryService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/service/param/ServiceInstanceParam.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/service/param/ServiceInstanceParam.java index ad550de5..bddabe9f 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/service/param/ServiceInstanceParam.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/service/param/ServiceInstanceParam.java @@ -2,7 +2,7 @@ package com.gitee.sop.adminserver.api.service.param; import com.gitee.easyopen.doc.annotation.ApiDocField; import com.gitee.easyopen.util.CopyUtil; -import com.gitee.sop.registryapi.bean.ServiceInstance; +import com.gitee.sop.adminserver.bean.ServiceInstance; import lombok.Data; import javax.validation.constraints.NotBlank; diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/HttpTool.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/HttpTool.java similarity index 99% rename from sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/HttpTool.java rename to sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/HttpTool.java index 3b6d15dc..181ea3b1 100644 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/HttpTool.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/HttpTool.java @@ -1,4 +1,4 @@ -package com.gitee.sop.registryapi.bean; +package com.gitee.sop.adminserver.bean; import lombok.Data; import lombok.Getter; diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/ServiceInfo.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/ServiceInfo.java similarity index 85% rename from sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/ServiceInfo.java rename to sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/ServiceInfo.java index 45417810..8a10e096 100644 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/ServiceInfo.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/ServiceInfo.java @@ -1,4 +1,4 @@ -package com.gitee.sop.registryapi.bean; +package com.gitee.sop.adminserver.bean; import lombok.Data; diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/ServiceInstance.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/ServiceInstance.java similarity index 94% rename from sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/ServiceInstance.java rename to sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/ServiceInstance.java index 8e62edb7..10603d65 100644 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/ServiceInstance.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/ServiceInstance.java @@ -1,4 +1,4 @@ -package com.gitee.sop.registryapi.bean; +package com.gitee.sop.adminserver.bean; import lombok.Data; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/RegistryConfig.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/RegistryConfig.java deleted file mode 100644 index 57b9e819..00000000 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/RegistryConfig.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gitee.sop.adminserver.config; - -import com.gitee.sop.registryapi.config.BaseRegistryConfig; -import org.springframework.context.annotation.Configuration; - -/** - * @author tanghc - */ -@Configuration -public class RegistryConfig extends BaseRegistryConfig { - -} diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/WebConfig.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/WebConfig.java index 549a6223..6208b9e7 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/WebConfig.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/WebConfig.java @@ -9,6 +9,8 @@ import com.gitee.easyopen.ParamNames; import com.gitee.easyopen.interceptor.ApiInterceptor; import com.gitee.easyopen.session.ApiSessionManager; import com.gitee.sop.adminserver.interceptor.LoginInterceptor; +import com.gitee.sop.adminserver.service.RegistryService; +import com.gitee.sop.adminserver.service.impl.RegistryServiceNacosImpl; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -65,6 +67,16 @@ public class WebConfig { return apiConfig; } + /** + * 当配置了registry.name=nacos生效。没有配置同样生效 + * + * @return + */ + @Bean + RegistryService registryServiceNacos() { + return new RegistryServiceNacosImpl(); + } + @PostConstruct public void after() { } diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/service/RegistryService.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/RegistryService.java similarity index 88% rename from sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/service/RegistryService.java rename to sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/RegistryService.java index 33988ca3..4799997d 100644 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/service/RegistryService.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/RegistryService.java @@ -1,7 +1,7 @@ -package com.gitee.sop.registryapi.service; +package com.gitee.sop.adminserver.service; -import com.gitee.sop.registryapi.bean.ServiceInfo; -import com.gitee.sop.registryapi.bean.ServiceInstance; +import com.gitee.sop.adminserver.bean.ServiceInfo; +import com.gitee.sop.adminserver.bean.ServiceInstance; import java.util.List; diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/service/impl/RegistryServiceNacos.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/impl/RegistryServiceNacosImpl.java similarity index 89% rename from sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/service/impl/RegistryServiceNacos.java rename to sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/impl/RegistryServiceNacosImpl.java index 3af74761..a7bfced5 100644 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/service/impl/RegistryServiceNacos.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/impl/RegistryServiceNacosImpl.java @@ -1,4 +1,4 @@ -package com.gitee.sop.registryapi.service.impl; +package com.gitee.sop.adminserver.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -7,10 +7,10 @@ import com.alibaba.nacos.api.naming.NamingFactory; import com.alibaba.nacos.api.naming.NamingService; import com.alibaba.nacos.api.naming.pojo.Instance; import com.alibaba.nacos.api.naming.pojo.ListView; -import com.gitee.sop.registryapi.bean.HttpTool; -import com.gitee.sop.registryapi.bean.ServiceInfo; -import com.gitee.sop.registryapi.bean.ServiceInstance; -import com.gitee.sop.registryapi.service.RegistryService; +import com.gitee.sop.adminserver.bean.HttpTool; +import com.gitee.sop.adminserver.bean.ServiceInfo; +import com.gitee.sop.adminserver.bean.ServiceInstance; +import com.gitee.sop.adminserver.service.RegistryService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; @@ -29,9 +29,9 @@ import java.util.Map; * @author tanghc */ @Slf4j -public class RegistryServiceNacos implements RegistryService { +public class RegistryServiceNacosImpl implements RegistryService { - static HttpTool httpTool = new HttpTool(); + private static HttpTool httpTool = new HttpTool(); @Value("${nacos.discovery.server-addr:${registry.nacos-server-addr:}}") private String nacosAddr; @@ -40,9 +40,10 @@ public class RegistryServiceNacos implements RegistryService { @PostConstruct public void after() throws NacosException { - if (StringUtils.isNotBlank(nacosAddr)) { - namingService = NamingFactory.createNamingService(nacosAddr); + if (StringUtils.isBlank(nacosAddr)) { + throw new IllegalArgumentException("请在配置文件中指定nacos.discovery.server-addr参数"); } + namingService = NamingFactory.createNamingService(nacosAddr); } @Override diff --git a/sop-admin/sop-admin-server/src/main/resources/application-dev.properties b/sop-admin/sop-admin-server/src/main/resources/application-dev.properties index 0393d04e..4ce97941 100644 --- a/sop-admin/sop-admin-server/src/main/resources/application-dev.properties +++ b/sop-admin/sop-admin-server/src/main/resources/application-dev.properties @@ -32,9 +32,6 @@ spring.datasource.password=${mysql.password} easyopen.show-doc=false easyopen.ignore-validate=true -# 固定不用改 -registry.name=nacos - logging.level.com.gitee=debug # 不用改 diff --git a/sop-common/pom.xml b/sop-common/pom.xml index 4668f704..974d3664 100644 --- a/sop-common/pom.xml +++ b/sop-common/pom.xml @@ -35,7 +35,6 @@ sop-gateway-common sop-service-common - sop-registry-api diff --git a/sop-common/readme.md b/sop-common/readme.md index 293c40bc..aa8b9864 100644 --- a/sop-common/readme.md +++ b/sop-common/readme.md @@ -1,7 +1,6 @@ # sop-common - sop-gateway-common:提供给网关使用 -- sop-registry-api:注册中心API - sop-service-common:提供给微服务端使用,需要打成jar 正式开发请将这些模块上传的maven私服 diff --git a/sop-common/sop-registry-api/pom.xml b/sop-common/sop-registry-api/pom.xml deleted file mode 100644 index f4b66578..00000000 --- a/sop-common/sop-registry-api/pom.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - 4.0.0 - com.gitee.sop - sop-registry-api - 2.0.0-SNAPSHOT - - - UTF-8 - UTF-8 - 1.8 - 3.11.0 - - - - - com.squareup.okhttp3 - okhttp - ${okhttp.version} - - - - - com.alibaba.nacos - nacos-client - 1.1.3 - - - - org.springframework - spring-context - 5.1.6.RELEASE - true - - - org.projectlombok - lombok - 1.18.6 - true - - - org.springframework.boot - spring-boot-autoconfigure - 2.1.4.RELEASE - true - - - - junit - junit - 4.11 - test - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - ${java.version} - ${java.version} - UTF-8 - - - - - - diff --git a/sop-common/sop-registry-api/readme.md b/sop-common/sop-registry-api/readme.md deleted file mode 100644 index 8c55f465..00000000 --- a/sop-common/sop-registry-api/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# sop-registry-api - -统一各注册中心接口 \ No newline at end of file diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaApplication.java b/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaApplication.java deleted file mode 100644 index 21fdcb3d..00000000 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaApplication.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.gitee.sop.registryapi.bean; - -import lombok.Data; - -import java.util.List; - -/** - * @author tanghc - */ -@Data -public class EurekaApplication { - private String name; - private List instance; -} diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaApplications.java b/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaApplications.java deleted file mode 100644 index 7baa0fbf..00000000 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaApplications.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gitee.sop.registryapi.bean; - -import lombok.Data; - -import java.util.List; - -/** - * @author tanghc - */ -@Data -public class EurekaApplications { - private List application; -} diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaApps.java b/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaApps.java deleted file mode 100644 index 653e7e64..00000000 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaApps.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.gitee.sop.registryapi.bean; - -import lombok.Data; - -/** - * @author tanghc - */ -@Data -public class EurekaApps { - private EurekaApplications applications; -} diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaInstance.java b/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaInstance.java deleted file mode 100644 index 295cdb23..00000000 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaInstance.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.gitee.sop.registryapi.bean; - -import lombok.Data; -import org.springframework.util.CollectionUtils; - -import java.util.Map; - -/** - * { - * "instance": { - * "instanceId": "demo-order2:11101", - * "app": "demo-order2", - * "appGroutName": null, - * "ipAddr": "127.0.0.1", - * "sid": "na", - * "homePageUrl": null, - * "statusPageUrl": null, - * "healthCheckUrl": null, - * "secureHealthCheckUrl": null, - * "vipAddress": "demo-order2", - * "secureVipAddress": "demo-order2", - * "countryId": 1, - * "dataCenterInfo": { - * "@class": "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo", - * "name": "MyOwn" - * }, - * "hostName": "127.0.0.1", - * "status": "UP", - * "leaseInfo": null, - * "isCoordinatingDiscoveryServer": false, - * "lastUpdatedTimestamp": 1529391461000, - * "lastDirtyTimestamp": 1529391461000, - * "actionType": null, - * "asgName": null, - * "overridden_status": "UNKNOWN", - * "port": { - * "$": 11102, - * "@enabled": "false" - * }, - * "securePort": { - * "$": 7002, - * "@enabled": "false" - * }, - * "metadata": { - * "@class": "java.util.Collections$EmptyMap" - * }* } - * } - * @author tanghc - */ -@Data -public class EurekaInstance { - private String instanceId; - private String ipAddr; - private Map port; - - private String status; - private String statusPageUrl; - private String healthCheckUrl; - private String lastUpdatedTimestamp; - - private Map metadata; - - public String fetchPort() { - if (CollectionUtils.isEmpty(port)) { - return ""; - } - return String.valueOf(port.getOrDefault("$", "")); - } - -} diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaUri.java b/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaUri.java deleted file mode 100644 index 2a76893e..00000000 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/bean/EurekaUri.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.gitee.sop.registryapi.bean; - -import okhttp3.MediaType; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.internal.http.HttpMethod; - -/** - * https://github.com/Netflix/eureka/wiki/Eureka-REST-operations - * - * @author tanghc - */ -public enum EurekaUri { - - /** - * 查询所有实例 Query for all instances - */ - QUERY_APPS("GET", "/apps"), - /** - * 查询一个实例 - */ - QUERY_INSTANCES("GET", "/instances/%s"), - /** - * 下线 Take instance out of service - */ - OFFLINE_SERVICE("PUT", "/apps/%s/%s/status?value=OUT_OF_SERVICE"), - /** - * 上线 Move instance back into service (remove override) - */ - ONLINE_SERVICE("DELETE", "/apps/%s/%s/status?value=UP"), - /** - * 设置metadata信息 - * - * /apps/{appID}/{instanceID}/metadata?key=value - */ - SET_METADATA("PUT", "/apps/%s/%s/metadata?%s=%s") - ; - public static final String URL_PREFIX = "/"; - - String uri; - String requestMethod; - - EurekaUri(String httpMethod, String uri) { - if (!uri.startsWith(URL_PREFIX)) { - uri = "/" + uri; - } - this.uri = uri; - this.requestMethod = httpMethod; - } - - public String getUri(String... args) { - if (args == null || args.length == 0) { - return uri; - } - Object[] param = new Object[args.length]; - for (int i = 0; i < args.length; i++) { - param[i] = args[i]; - } - return String.format(uri, param); - } - - public Request getRequest(String url, String... args) { - if (url.endsWith("/")) { - url = url.substring(0, url.length() - 1); - } - String requestUrl = url + getUri(args); - Request request = this.getBuilder() - .url(requestUrl) - .addHeader("Content-Type", "application/json") - .addHeader("Accept", "application/json") - .build(); - return request; - } - - public Request.Builder getBuilder() { - String method = requestMethod; - RequestBody requestBody = null; - if (HttpMethod.requiresRequestBody(method)) { - MediaType contentType = MediaType.parse("application/json"); - requestBody = RequestBody.create(contentType, "{}"); - } - return new Request.Builder().method(requestMethod, requestBody); - } -} diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/config/BaseRegistryConfig.java b/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/config/BaseRegistryConfig.java deleted file mode 100644 index 047eb03d..00000000 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/config/BaseRegistryConfig.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gitee.sop.registryapi.config; - -import com.gitee.sop.registryapi.service.RegistryService; -import com.gitee.sop.registryapi.service.impl.RegistryServiceEureka; -import com.gitee.sop.registryapi.service.impl.RegistryServiceNacos; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.context.annotation.Bean; - -/** - * @author tanghc - */ -public class BaseRegistryConfig { - - /** - * 当配置了registry.name=eureka生效 - * - * @return - */ - @Bean - @ConditionalOnProperty(prefix = "registry", name = "name", havingValue = "eureka") - RegistryService registryServiceEureka() { - return new RegistryServiceEureka(); - } - - /** - * 当配置了registry.name=nacos生效 - * - * @return - */ - @Bean - @ConditionalOnProperty(prefix = "registry", name = "name", havingValue = "nacos") - RegistryService registryServiceNacos() { - return new RegistryServiceNacos(); - } - -} diff --git a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/service/impl/RegistryServiceEureka.java b/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/service/impl/RegistryServiceEureka.java deleted file mode 100644 index 57793f3b..00000000 --- a/sop-common/sop-registry-api/src/main/java/com/gitee/sop/registryapi/service/impl/RegistryServiceEureka.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.gitee.sop.registryapi.service.impl; - -import com.alibaba.fastjson.JSON; -import com.gitee.sop.registryapi.bean.EurekaApplication; -import com.gitee.sop.registryapi.bean.EurekaApps; -import com.gitee.sop.registryapi.bean.EurekaInstance; -import com.gitee.sop.registryapi.bean.EurekaUri; -import com.gitee.sop.registryapi.bean.ServiceInfo; -import com.gitee.sop.registryapi.bean.ServiceInstance; -import com.gitee.sop.registryapi.service.RegistryService; -import lombok.extern.slf4j.Slf4j; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.time.DateFormatUtils; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.util.CollectionUtils; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; - -/** - * eureka接口实现 - * @author tanghc - */ -@Slf4j -public class RegistryServiceEureka implements RegistryService { - - private OkHttpClient client = new OkHttpClient(); - - @Value("${registry.eureka-server-addr:}") - private String eurekaUrl; - - @Override - public List listAllService(int pageNo, int pageSize) throws Exception { - if (StringUtils.isBlank(eurekaUrl)) { - return Collections.emptyList(); - } - String json = this.requestEurekaServer(EurekaUri.QUERY_APPS); - EurekaApps eurekaApps = JSON.parseObject(json, EurekaApps.class); - - List serviceInfoList = new ArrayList<>(); - List applicationList = eurekaApps.getApplications().getApplication(); - for (EurekaApplication eurekaApplication : applicationList) { - ServiceInfo serviceInfo = new ServiceInfo(); - serviceInfo.setServiceId(eurekaApplication.getName()); - List instanceList = eurekaApplication.getInstance(); - if (!CollectionUtils.isEmpty(instanceList)) { - serviceInfo.setInstances(new ArrayList<>(instanceList.size())); - for (EurekaInstance eurekaInstance : instanceList) { - ServiceInstance serviceInstance = new ServiceInstance(); - serviceInstance.setInstanceId(eurekaInstance.getInstanceId()); - serviceInstance.setServiceId(serviceInfo.getServiceId()); - serviceInstance.setIp(eurekaInstance.getIpAddr()); - serviceInstance.setPort(Integer.valueOf(eurekaInstance.fetchPort())); - serviceInstance.setStatus(eurekaInstance.getStatus()); - Date updateTime = new Date(Long.valueOf(eurekaInstance.getLastUpdatedTimestamp())); - serviceInstance.setUpdateTime(DateFormatUtils.format(updateTime, TIMESTAMP_PATTERN)); - serviceInstance.setMetadata(eurekaInstance.getMetadata()); - serviceInfo.getInstances().add(serviceInstance); - } - } - serviceInfoList.add(serviceInfo); - } - return serviceInfoList; - } - - - - @Override - public void onlineInstance(ServiceInstance serviceInstance) throws Exception { - this.requestEurekaServer(EurekaUri.ONLINE_SERVICE, serviceInstance.getServiceId(), serviceInstance.getInstanceId()); - } - - @Override - public void offlineInstance(ServiceInstance serviceInstance) throws Exception { - this.requestEurekaServer(EurekaUri.OFFLINE_SERVICE, serviceInstance.getServiceId(), serviceInstance.getInstanceId()); - } - - @Override - public void setMetadata(ServiceInstance serviceInstance, String key, String value) throws Exception { - this.requestEurekaServer(EurekaUri.SET_METADATA, serviceInstance.getServiceId(), serviceInstance.getInstanceId(), key, value); - } - - private String requestEurekaServer(EurekaUri eurekaUri, String... args) throws IOException { - Request request = eurekaUri.getRequest(this.eurekaUrl, args); - Response response = client.newCall(request).execute(); - if (response.isSuccessful()) { - return response.body().string(); - } else { - log.error("操作失败,url:{}, msg:{}, code:{}", eurekaUri.getUri(args), response.message(), response.code()); - throw new RuntimeException("操作失败"); - } - } - -}