在使用springcloud ribbon客户端负载均衡的时候,可以给RestTemplate bean 加一个@LoadBalanced注解,就能让这个RestTemplate在请求时拥有客户端负载均衡的能力:
/**
* 注入调用三方接口使用的RestTemplate
* @return RestTemplate
*/
@Bean
@LoadBalanced
public RestTemplate loadBalancedRestTemplate() {
//暂时先通过build获取 new出来的sMessageConverters缺少参数
RestTemplate buildTemplate = restTemplateBuilder.build();
buildTemplate.setRequestFactory(httpRequestFactory());
return buildTemplate;
}
1 如果一个服务做了集群之后如果不加这个注解可能会找不到哪一个服务给我运行所以必须加这个注解让我的服务请求时拥有客户端负载均衡的能力,这样就不会报错了
2.这里要声明一下默认的负载均衡的机制是轮询就是一个服务一次轮着来
3.首先:这个@LoadBalanced注解是来自cloud包下的一个注解
4.这个注解就是让某一个东西拥有负载均衡的能力
通过注解的源码发现只是比普通的注解多了个@Qualifier:
该注解的作用是通过名称进行精确注入.
当spring容器中有多个相同类型的bean的时候,可以通过@Qualifier来进行区分,以便在注入的时候明确表明你要注入具体的哪个bean,消除歧义。