第一步:引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
第二步:实现两种方式
方式1
@Autowired
private LoadBalancerClient loadBalancerClient;
@RequestMapping("/user3")
@ResponseBody
String user3() {
ServiceInstance serviceInstance = loadBalancerClient.choose("XDW-SERVICE");
return restTemplate.getForObject("http://"+serviceInstance.getHost()+":"+serviceInstance.getPort()+"/xdw/user", AdUserDO.class).getUserName() ;
}
第二种方式
在配置类里面
@Bean("restTemplate1")
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
在业务类里面:
@Qualifier("restTemplate1")
@Autowired
RestTemplate restTemplate1;
@RequestMapping("/user2")
@ResponseBody
String user2() {
return restTemplate1.getForObject("http://XDW-SERVICE/xdw/user", AdUserDO.class).getUserName() ;
}
可配置轮训方式
默认是轮训方式
XDW-SERVICE.ribbon.NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule