package com.sf.eurekaclientdemo1.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.time.Duration; import java.util.List; @RestController public class ClientController { @Autowired private RestTemplate restTemplate; @Autowired private DiscoveryClient discoveryClient; // http://localhost:18091/clientDemo1 @GetMapping("/clientDemo1") public String handler() throws Exception { // 要访问的 http://localhost:18092/clientDemo2 // String result = restTemplate.getForObject("http://localhost:18092/clientDemo2", String.class); // 通过服务名 完成服务调用 String result = restTemplate.getForObject("http://eureka-client-demo-2/clientDemo2", String.class); // eureka-client-demo-2 localhost:18092 // eureka-client-demo-2 localhost:18093 List services = discoveryClient.getServices(); for (String service : services) { System.out.println(service); } // 实例 集群中的实例 一个可以被访问的进程 192.168.1.10:18091 192.168.1.11:18091 List instances = discoveryClient.getInstances("eureka-client-demo-2"); for (ServiceInstance instance : instances) { System.out.println(instance.getServiceId()); System.out.println(instance.getHost()); System.out.println(instance.getPort()); System.out.println(instance.getUri()); } String data = "client demo 1 success"; return data + " " + result; } }