#提高#服务调用

discoverClient

通过 discoverClient 获取实例列表,然后自己实现负载均衡算法去 随机调用服务的api接口

@RestController
public class ConsumerController {
    @Resource
    private DiscoveryClient discoveryClient;
    @Resource
    private RestTemplate restTemplate;

    // @RequestMapping("/hello")
    // public String hello() {
    //     List<ServiceInstance> list = discoveryClient.getInstances("lyr-api-provider");
    //     String url = list.get(0).getUri().toString() + '/' + "hello";
    //     //调用了 provider的接口 返回给客户端
    //     return restTemplate.getForObject(url, String.class);
    //     // return "hello";
    // }

注释的代码是没有使用 ribbon的写法

ribbon调用

@Configuration
public class RibbonConfig {
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

}

加上 LoadBalanced 注解,返回一个被代理了 的 restTemplate对象

 @RequestMapping("/hello")
    public String hello() {
        // List<ServiceInstance> list = discoveryClient.getInstances("lyr-api-provider");
        String url = "http://lyr-api-provider/" + '/' + "hello";
        //调用了 provider的接口 返回给客户端
        return restTemplate.getForObject(url, String.class);
        // return "hello";
    }

直接写 服务名字, ribbon会偷偷的换成服务对应 的ip地址

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值