什么是负载均衡?
1、负载均衡
负载均衡就是将负载(访问请求,工作任务)进行分摊到多个操作单元(服务器,组件)上执行。
2、Ribbon介绍:
什么是Ribbon?
- Spring Cloud Ribbon是基于Netfilx Ribbon实现的一套客户端负载均衡的工具。
- 不需要单独的引入ribbon的依赖,在nacos中已经集成了ribbon的依赖。
- Ribbon默认使用的是 轮询 负载均衡算法,还有随机等负载均衡算法。
3、负载均衡策略
负载均衡接口: com.netflix.loadbalancer.IRule
基于ribbon实现负载均衡
1、在消费者的ConfigBean类中 ,RestTemplate 上增加@LoadBalanced注解,开启负载均衡
2、同时,也可以指定负载均衡策略。
@Configuration
public class ConfigBean {
@Bean
@LoadBalanced //开启负载均衡
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
//随机策略
@Bean
public IRule iRule() {
return new RandomRule();
}
3、在controller中,修改URL硬编码
@RestController
public class ConsumerController {
@Autowired
private RestTemplate restTemplate;
@RequestMapping(value = "/consumer")
public User getUserById(@PathVariable Integer id) {
return restTemplate
.getForObject("http://ribbon-provider/provider/getUserById/" + id, User.class);
}
}
4、测试就完了