|  |  |  | @ -18,6 +18,8 @@ import java.util.ArrayList; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Collections; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Date; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.List; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.stream.Collectors; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.stream.Stream; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
		
			
				
					|  |  |  |  |  * eureka接口实现 | 
			
		
	
	
		
			
				
					|  |  |  | @ -29,11 +31,11 @@ public class RegistryServiceEurekaImpl implements RegistryService { | 
			
		
	
		
			
				
					|  |  |  |  |     private OkHttpClient client = new OkHttpClient(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Value("${eureka.client.serviceUrl.defaultZone:}") | 
			
		
	
		
			
				
					|  |  |  |  |     private String eurekaUrl; | 
			
		
	
		
			
				
					|  |  |  |  |     private String eurekaUrls; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public List<ServiceInfo> listAllService(int pageNo, int pageSize) throws Exception { | 
			
		
	
		
			
				
					|  |  |  |  |         if (StringUtils.isBlank(eurekaUrl)) { | 
			
		
	
		
			
				
					|  |  |  |  |         if (StringUtils.isBlank(eurekaUrls)) { | 
			
		
	
		
			
				
					|  |  |  |  |             throw new IllegalArgumentException("未指定eureka.client.serviceUrl.defaultZone参数"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         String json = this.requestEurekaServer(EurekaUri.QUERY_APPS); | 
			
		
	
	
		
			
				
					|  |  |  | @ -81,7 +83,7 @@ public class RegistryServiceEurekaImpl implements RegistryService { | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private String requestEurekaServer(EurekaUri eurekaUri, String... args) throws IOException { | 
			
		
	
		
			
				
					|  |  |  |  |         Request request = eurekaUri.getRequest(this.eurekaUrl, args); | 
			
		
	
		
			
				
					|  |  |  |  |         Request request = eurekaUri.getRequest(getFirstDefaultZoneServiceUrl(), args); | 
			
		
	
		
			
				
					|  |  |  |  |         Response response = client.newCall(request).execute(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (response.isSuccessful()) { | 
			
		
	
		
			
				
					|  |  |  |  |             return response.body().string(); | 
			
		
	
	
		
			
				
					|  |  |  | @ -91,4 +93,22 @@ public class RegistryServiceEurekaImpl implements RegistryService { | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private List<String> getDefaultZoneServiceUrls() { | 
			
		
	
		
			
				
					|  |  |  |  |         if (!StringUtils.isEmpty(eurekaUrls)) { | 
			
		
	
		
			
				
					|  |  |  |  |             return Stream.of(org.springframework.util.StringUtils.commaDelimitedListToStringArray(eurekaUrls)) | 
			
		
	
		
			
				
					|  |  |  |  |                     .map(url -> !url.endsWith("/") ? (url += "/").trim() : url.trim()) | 
			
		
	
		
			
				
					|  |  |  |  |                     .collect(Collectors.toList()); | 
			
		
	
		
			
				
					|  |  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |  |             return Collections.emptyList(); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private String getFirstDefaultZoneServiceUrl() { | 
			
		
	
		
			
				
					|  |  |  |  |         List<String> serviceUrls = getDefaultZoneServiceUrls(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollectionUtils.isEmpty(serviceUrls)) { | 
			
		
	
		
			
				
					|  |  |  |  |             throw new IllegalArgumentException("未指定eureka.client.serviceUrl.defaultZone参数"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return serviceUrls.get(0); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |