四. Ribbon负载均衡服务调用 (4)

最后我们在80服务的Controller中添加方法:

@RestController @Slf4j @RequestMapping("/consumer") public class OrderController { @Resource private RestTemplate restTemplate; @Resource private LoadBalancer loadBalancer; @Resource private DiscoveryClient discoveryClient; @GetMapping("payment/lb") public String getPaymentLB() { //获取服务提供方所有的服务实例 List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE"); if (instances == null || instances.size() <= 0) { return null; } //采用自己实现的轮询负载均衡算法选择具体实例 ServiceInstance serviceInstance = loadBalancer.instances(instances); URI uri = serviceInstance.getUri(); return restTemplate.getForObject(uri + "/payment/lb", String.class); } }

在浏览器中输入,也就是80端口的服务消费方采用我们自己编写的轮询负载均衡算法访问CLOUD-PAYMENT-SERVICE服务的具体实例,测试成功,在服务消费方80服务的后端控制台也输出了的日志。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsppdf.html