Ribbon是SpringCloud本地客户端负载均衡器; 使用方式:
@EnableDiscoveryClient
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
//手动将RestTemplate加入的bean中
@Bean
//如果使用rest方式以别名方式进行调用,则依赖ribbon负载均衡器@LoadBalanced
//让RestTemplate请求时拥有客户端负载均衡能力
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}

上图订单服务请求会员服务,订单服务通过会员服务的别名
app-member
从注册中信中获取到会员服务的服务器地址:
list[0]=127.0.0.1:8000
list[1]=127.0.0.1:8010
得到会员地址后,会将地址list缓存到本地jvm中,然后使用Ribbon负载均衡器通过rest实现rpc远程调用;
Ribbon负载均衡器原理
- api总请求数%服务器数量得到值,即list下标,然后获取服务器地址;
网友评论