基本流程如下:
- 拦截我们请求的url地址.
- RibbonLoadBalancerClient会从请求url中获取服务名称,也就是userservice
- ribbon根据服务名称到eureka拉取服务列表
- eureka返回列表,localhost:8081、localhost:8082
- Ribbon内置有多种负载均衡的策略,根接口是IRule,默认配置轮询这种策略。
- RibbonLoadBalancerClient修改请求地址,用localhost:8081替代userservice,得到http://localhost:8081/user/1,发起真实请求
负载均衡策略
nacos与eureka的区别:
- 相同点
- 都支持服务的注册与服务的拉取
- 都支持心跳方式的服务监测
- 不同点
- nacos有临时实例与非临时实例, eureka是没有临时实例概念
- 临时实例是支持心跳监测的,非临时实例是nacos主动监测
- 临时实例超过30秒没有心跳,从服务删除。非临时实例是不会删除的
- nacos不单止支持服务的拉取,还支持服务的主动推送