Ribbon 负载均衡之懒加载、饥饿加载
1.懒加载
首先启动一次springboot微服务看看启动时 后台都会报哪些信息?
这里OrderApplication启动服务共花费4秒多。 然后通过OrderApplication调用一次UserService服务
可以看到这里userservice初始化了负载均衡器,并且ServerList刚开始为空,所以接下来会进行一次PollingServerListUpdater 拉取动作,对LoadBanlanceClient进行初始化,并存储。
这个过程称之为懒加载操作,即第一次加载完成后,会将刚才访问的服务缓存在内存中,此后再次访问相同服务则无需加载,因此第一次访问需要消耗比较长的时间,服务默认使用此加载方式。
2.饥饿加载
Ribbon默认采用的时懒加载方式,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。
而饥饿加载则会在项目启动时创建,降低第一次访问时的好事,通过下面配置开启饥饿加载:
ribbon:
eager-load:
enabled: true #开启饥饿加载
clients: userservice #指定饥饿加载的服务名称 #注意这个仅能指定一种服务 如果同时指定多个服务使用以下方式
clients:
-userservice
-userservice