使用Ribbon
1.首先需要多个一样的服务提供方
2.在服务调用调用者上
- 无需导入依赖,重写配置
- 在启动类上RestTemplate添加
@LoadBalanced
注解 - 直接可以host+port可以用应用名称代替
@GetMapping("/user")
public List<User> queryUserById(){
User[] users = this.restTemplate.getForObject("http://service-provider/user", User[].class);
List<User> userList = Arrays.asList(users);
return userList;
}
即可实现负载均衡
更改负载均衡方案
默认的负载均衡是轮询方式
改为随机的话可以在yml上配置
service-provider:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule