ClientController.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.sf.eurekaclientdemo1.controller;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.cloud.client.ServiceInstance;
  4. import org.springframework.cloud.client.discovery.DiscoveryClient;
  5. import org.springframework.web.bind.annotation.GetMapping;
  6. import org.springframework.web.bind.annotation.RestController;
  7. import org.springframework.web.client.RestTemplate;
  8. import java.net.URI;
  9. import java.net.http.HttpClient;
  10. import java.net.http.HttpRequest;
  11. import java.net.http.HttpResponse;
  12. import java.time.Duration;
  13. import java.util.List;
  14. @RestController
  15. public class ClientController {
  16. @Autowired
  17. private RestTemplate restTemplate;
  18. @Autowired
  19. private DiscoveryClient discoveryClient;
  20. // http://localhost:18091/clientDemo1
  21. @GetMapping("/clientDemo1")
  22. public String handler() throws Exception {
  23. // 要访问的 http://localhost:18092/clientDemo2
  24. // String result = restTemplate.getForObject("http://localhost:18092/clientDemo2", String.class);
  25. // 通过服务名 完成服务调用
  26. String result = restTemplate.getForObject("http://eureka-client-demo-2/clientDemo2", String.class);
  27. // eureka-client-demo-2 localhost:18092
  28. // eureka-client-demo-2 localhost:18093
  29. List<String> services = discoveryClient.getServices();
  30. for (String service : services) {
  31. System.out.println(service);
  32. }
  33. // 实例 集群中的实例 一个可以被访问的进程 192.168.1.10:18091 192.168.1.11:18091
  34. List<ServiceInstance> instances = discoveryClient.getInstances("eureka-client-demo-2");
  35. for (ServiceInstance instance : instances) {
  36. System.out.println(instance.getServiceId());
  37. System.out.println(instance.getHost());
  38. System.out.println(instance.getPort());
  39. System.out.println(instance.getUri());
  40. }
  41. String data = "client demo 1 success";
  42. return data + " " + result;
  43. }
  44. }