SpringCloud Ribbon的基本概念与应用
本文介绍了一些关于SpringCloud Ribbon的基本概念与应用。
Ribbon负载均衡流程
像这样的url:http://userservice/user/1 是没有办法通过http访问的,因为实际上不存在这么一个网站,因此Ribbon起到一个请求拦截处理的作用
收到请求后,向Eureka拉取服务
返回服务列表,进行负载均衡,轮询获取具体服务端口
具体操作需要在xxx-service模块中的xxxServiceApplication中将RestTemplate注入spring容器
|
Ribbon底层
- LoadBalancerInterceptor拦截http请求,将请求解析得到服务名称
- 将服务名称交给RibbonLoadBalancerClient
- RibbonLoadBalancerClient通过DynamicServerListLoadBalancer向eureka拉取服务列表
- DynamicServerListLoadBalancer通过负载均衡策略IRule从服务列表中进行选择,提交给RibbonLoadBalancerClient
- RibbonLoadBalancerClient对url进行修改,发起请求
负载均衡策略
修改策略
- 通过在相关服务中将IRule注入spring容器实现对负载均衡策略的修改,例如xxx-service模块中的xxxServiceApplication中(本身也算是配置类)
|
- 配置文件的方式,在xxx-service模块中的yml配置中添加
userservice: |
饥饿加载
Ribbon默认是懒加载,第一次访问才会创建LoadBalancerClient,请求时间较长。使用饥饿加载可以在服务启动时就创建,减少请求时间
ribbon: |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Geo0426!
评论