Commit 828f2f27 by Nepxion

测试用例,增加Route接口

parent f2803837
......@@ -12,7 +12,6 @@ package com.nepxion.discovery.plugin.example;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
......@@ -28,7 +27,6 @@ public class DiscoveryApplication {
}
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
......
......@@ -13,6 +13,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.client.ServiceInstance;
......@@ -51,22 +52,35 @@ public class DiscoveryController {
// 获取B服务的实例列表
List<ServiceInstance> bInstances = instances();
// 获取C服务的实例列表
List<Map<String, ?>> cInstances = restTemplate.getForEntity("http://discovery-springcloud-example-b/instances", List.class).getBody();
String aInfo = aServiceId.toLowerCase() + "[" + aEurekaVersion + "]";
for (ServiceInstance bInstance : bInstances) {
String bServiceId = bInstance.getServiceId().toLowerCase();
String bEurekaVersion = bInstance.getMetadata().get(PluginConstant.VERSION);
String bInfo = bServiceId + "[" + bEurekaVersion + "]";
for (Map<String, ?> cInstance : cInstances) {
String cServiceId = cInstance.get("serviceId").toString().toLowerCase();
String cEurekaVersion = ((Map<String, String>) cInstance.get("metadata")).get(PluginConstant.VERSION);
String cInfo = cServiceId + "[" + cEurekaVersion + "]";
StringBuilder stringBuilder = new StringBuilder();
routes.add(stringBuilder.append(aInfo).append("->").append(bInfo).append("->").append(cInfo).toString());
if (CollectionUtils.isNotEmpty(bInstances)) {
for (ServiceInstance bInstance : bInstances) {
String bServiceId = bInstance.getServiceId().toLowerCase();
String bEurekaVersion = bInstance.getMetadata().get(PluginConstant.VERSION);
String bInfo = bServiceId + "[" + bEurekaVersion + "]";
String bHost = bInstance.getHost();
int bPort = bInstance.getPort();
// 获取C服务的实例列表
List<Map<String, ?>> cInstances = restTemplate.getForEntity("http://" + bHost + ":" + bPort + "/instances", List.class).getBody();
if (CollectionUtils.isNotEmpty(cInstances)) {
for (Map<String, ?> cInstance : cInstances) {
String cServiceId = cInstance.get("serviceId").toString().toLowerCase();
String cEurekaVersion = ((Map<String, String>) cInstance.get("metadata")).get(PluginConstant.VERSION);
String cInfo = cServiceId + "[" + cEurekaVersion + "]";
StringBuilder stringBuilder = new StringBuilder();
routes.add(stringBuilder.append(aInfo).append("->").append(bInfo).append("->").append(cInfo).toString());
}
} else {
StringBuilder stringBuilder = new StringBuilder();
routes.add(stringBuilder.append(aInfo).append("->").append(bInfo).toString());
}
}
} else {
StringBuilder stringBuilder = new StringBuilder();
routes.add(stringBuilder.append(aInfo).toString());
}
return routes;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment