微服务框架
【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】
SpringCloud微服务架构
文章目录
- 微服务框架
- SpringCloud微服务架构
- 4 Ribbon
- 4.3 饥饿加载
- 4.3.1 饥饿加载
- 4.3.2 总结
4 Ribbon
4.3 饥饿加载
4.3.1 饥饿加载
之前我们已经通过
的方式修改了负载均衡的策略,简单实现了 随机调用
【现在我们来看个问题】
先重启一下order 服务
OK
现在来发送一次请求
第一次耗时345 ms
同样的请求,再发一次
可以看到,这次来到了14ms,哇,这个区别有点大
【原因】
Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长【之后就不会了,因为服务列表会被缓存】。
而饥饿加载则会在项目启动时创建【“饥不择食”】,降低第一次访问的耗时,通过下面配置开启饥饿加载:
设置为true
ribbon:
eager-load:
enabled: true # 开启饥饿加载
clients: userservice # 指定对userservice这个服务饥饿加载
OK,直接重启服务
其实从日志都能够看到,这两个服务已经上来了
访问测试【第一次】
可以看到确实简短了一些,但是还是好长…
【原因】在服务调用时,还会完成一些别的事情
比如这个东西
OK, 这就是对饥饿加载的大致介绍
4.3.2 总结
-
Ribbon负载均衡规则
- 规则接口是IRule
- 默认实现是ZoneAvoidanceRule,根据zone选择服务列表,然后轮询
-
负载均衡自定义方式
- 代码方式:配置灵活,但修改时需要重新打包发布
- 配置方式:直观,方便,无需重新打包发布,但是无法做全局配置
-
饥饿加载
- 开启饥饿加载
- 指定饥饿加载的微服务名称