Spring RestTemplate具备负载均衡功能

   创建RestTemplate的Bean时使用@LoadBalanced注解, 就可以自动配置为使用ribbon。如下面的示例所示:

@Configuration
public class MyConfiguration {

    @LoadBalanced
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

public class MyClass {
    @Autowired
    private RestTemplate restTemplate;

    public String doOtherStuff() {        //注意:代码中的url要使用服务名,而不是主机名
        String results = restTemplate.getForObject("http://stores/stores", String.class);
        return results;
    }
}

  多个RestTemplate对象 

@Configuration
public class MyConfiguration {

    @LoadBalanced
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }

    @Primary
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

public class MyClass {
    @Autowired
    private RestTemplate restTemplate;
    
    @LoadBalanced
    @Autowired
    private RestTemplate restTemplateLoadBalanced;
    

    public String doOtherStuff() {        //注意:代码中的url要使用服务名,而不是主机名
        String results = restTemplate.getForObject("http://stores/stores", String.class);
        return results;
    }
}

posted on 2020-12-09 17:22  书梦一生  阅读(879)  评论(0编辑  收藏  举报

导航