1. 负载均衡Ribbon
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。
负载均衡策略
- 随机策略:该策略实现了从服务清单中随机选择一个服务实例的功能。
- 轮训策略:该策略实现按照线性轮询的方式依次选择实例的功能。
基于基于ribbon实现负载均衡
-
开启ribbon负载均衡,注解@LoadBalanced
@Configuration public class ConfigBean { @Bean /** * 添加了@LoadBalanced注解之后,Ribbon会给restTemplate请求添加一个拦截器,在拦截器中获取 * 注册中心的所有可用服务,通过获取到的服务信息(ip,port)替换 serviceId 实现负载请求。 */ @LoadBalanced //开启负载均衡,默认是轮询策略 public RestTemplate getRestTemplate(){ return new RestTemplate(); } } //指定随机策略 @Bean public IRule iRule() { return new RandomRule(); }
-
发送请求,借助RestTemplate对象发送请求,请求路径不再是ip+端口号,而是在nacos注册的服务名
String serviceUrl = "ribbon-provider"; return restTemplate.getForObject("http://" + serviceUrl + "/provider/getUserById/" + id, User.class); </