springcloud ribbon 饥饿加载原理解析
作者:今天的接口写完了吗?
这篇文章主要介绍了springcloud ribbon 饥饿加载原理解析,饥饿加载特别适用于对启动性能要求较高的场景,如系统启动初期就有高并发请求的情况,感兴趣的朋友跟随小编一起学习吧
一、未饥饿加载前
我们的服务者端口是8081,消费者端口是8085
当我们将两个项目都启动的时候,在消费者里日志级别设置未debug,发现找不到8081
二、开启饥饿加载
# 配置饥饿加载,d1为服务名
ribbon.eager-load.enabled=true
ribbon.eager-load.clients=d1
如果多个服务开启饥饿模式,使用逗号分隔。 clients: userservice,orderservice
三、饥饿加载的原理
①特点:我们可以理解为一种优化策略,
应用启动时,Ribbon会根据配置立即向服务注册中心发起请求,获取指定服务的所有实例信息,并将其缓存起来。
② 优点:
- 减少延迟:首次调用服务时不再需要等待从服务注册中心获取实例列表的时间,提高服务调用的响应速度。
- 避免雪崩效应:特别是在服务集群规模较大或网络延迟较高的情况下,避免因首次请求时集中拉取服务列表引发的网络拥塞或超时问题。
- 提升用户体验:特别适用于对启动性能要求较高的场景,如系统启动初期就有高并发请求的情况。
③ 缺点:
- 增加资源消耗:启动时即加载所有服务实例可能导致额外的网络资源消耗,特别是当服务实例数量众多时。
- 数据实时性问题:如果服务实例的注册状态在应用启动后发生变化(比如新增、移除或状态变更),饥饿加载的数据可能不会立刻反映最新的服务列表,需要配合轮询或其他更新机制来保持数据同步。
- 注意:虽然以上描述了Ribbon的一种潜在优化策略,但在官方文档或最新版本的Spring Cloud体系中,对Ribbon的饥饿加载特性并没有明确支持。不过开发者可以根据需求自行实现类似的逻辑,以实现在应用启动时预先加载服务实例信息的目的。
到此这篇关于springcloud - ribbon 饥饿加载的文章就介绍到这了,更多相关springcloud ribbon 加载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!