揭秘Ribbon负载均衡:轻松实现请求分摊
1,负载均衡Ribbon
1、什么是ribbon?
ribbon是基于Netflix ribbon实现的一个工作在consumer端的负载均衡工具,提供了很多负载均衡策略:轮询、随机
2、ribbon的启动器
nacos已经集成了ribbon,故无启动器
3什么是负载均衡
通俗的讲,负载均衡就是将负担(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上进行执行。
模拟两台客户端
如何实现负载均衡---请求分担
前面知道
这样可以获取取服务实例
这样可以使用轮播 和随机数 解决
在写url时候还要写 host port 不麻烦吗?
2,LoadBalanced 作用
@LoadBalanced
让 RestTemplate 具备负载均衡能力
可以直接用 服务名 调用接口,不用写死 IP + 端口
@LoadBalanced 底层原理
1,底层使用拦截器拦截url 取出 服务器 List<Service> 集合
2,负载均衡算法
3,把url当中的 服务名 替换成 ip 和 port
1、开启ribbon
添加 LoadBalanced注解 url就可以这样写了
2,服务调用
//注意:"ribbon-provider"为服务名 String url = "http://ribbon-provider/provider/getUserById/"+id; return restTemplate.getForObject(url, User.class);3、指定负载均衡策略
@Bean public IRule iRule(){ return new RandomRule();//指定随机策略 }