SpringCloud RestTemplate Ribbon服务调用如何实现疑问?

摘要:1.依赖 consul依赖中包含ribbon依赖无需额外引入 2.基于discovery Client形式调用 @RequestMapping("usershowProductMsg"
1.依赖 consul依赖中包含ribbon依赖无需额外引入 2.基于discovery Client形式调用 @RequestMapping("/user/showProductMsg") public List<ServiceInstance> showProductMsg() { //discovery Client形式调用 List<ServiceInstance> serviceInstances = discoveryClient.getInstances("productservices"); for (ServiceInstance serviceInstance : serviceInstances) { System.out.println(serviceInstance.getHost()); System.out.println(serviceInstance.getPort()); } return serviceInstances; } [{"instanceId":"productservices-9001","serviceId":"productservices","host":"DESKTOP-VQE7HEH","port":9001,"secure":false,"metadata":{"secure":"false"},"uri":"http://DESKTOP-VQE7HEH:9001","scheme":null},{"instanceId":"productservices-9003","serviceId":"productservices","host":"DESKTOP-VQE7HEH","port":9003,"secure":false,"metadata":{"secure":"false"},"uri":"http://DESKTOP-VQE7HEH:9003","scheme":null}] 可以获取服务列表,无负载均衡 3.基于loadBalance Client形式调用 @RequestMapping("/user/showProductMsg") public ServiceInstance showProductMsg() { //loadBalance Client形式调用 ServiceInstance serviceInstance = loadBalancerClient.choose("productservices"); System.out.println(serviceInstance.getHost()); System.out.println(serviceInstance.getPort()); return serviceInstance; } {"serviceId":"productservices","server":{"host":"DESKTOP-VQE7HEH","port":9003,"scheme":null,"id":"DESKTOP-VQE7HEH:9003","zone":"UNKNOWN","readyToServe":true,"metaInfo":{"instanceId":"productservices-9003","appName":"productservices","serverGroup":null,"serviceIdForDiscovery":null},"metadata":{"secure":"false"},"passingChecks":true,"healthService":{"node":{"id":"95a5f00e-4d61-c010-c997-5c30e5cbc400","node":"DESKTOP-VQE7HEH","address":"127.0.0.1","datacenter":"dc1","taggedAddresses":{"lan":"127.0.0.1","lan_ipv4":"127.0.0.1","wan":"127.0.0.1","wan_ipv4":"127.0.0.1"},"meta":{"consul-network-segment":""},"createIndex":10,"modifyIndex":11},"
阅读全文