java怎么配置懒加载,Ribbon – 懒加载

  • Post author:
  • Post category:java


深入理解apache dubbo实战+深度书

120.6元

(需用券)

去购买 >

8b509e833f3d6f31ce8cca2ab468bf8e.png

Ribbon – 负载均衡流程中提到,serviceId对应的AnnotationConfigApplicationContext在第一次调用的时候才创建(所以叫懒加载),那有可能造成调用的超时,那有没有办法提前加载呢?

在RibbonAutoConfiguration类中,有个RibbonApplicationContextInitializer,如果不需要懒加载,我们就需要ribbon.eager-load.enabled的值为true。@Bean

@ConditionalOnProperty(“ribbon.eager-load.enabled”)

public RibbonApplicationContextInitializer ribbonApplicationContextInitializer() {

return new RibbonApplicationContextInitializer(springClientFactory(),

ribbonEagerLoadProperties.getClients());

}

RibbonApplicationContextInitializer是实现ApplicationListener,所以当上下文准备好的时候,就会调用onApplicationEvent方法,然后继续调用initialize方法,所以我们并不是说ribbon.eager-load.enabled的值设置true就可以的,还需要设置clientNames。protected void initialize() {

if (clientNames != null) {

for (String clientName : clientNames) {

this.springClientFactory.getContext(clientName);

}

}

}

为了去掉懒加载,我的配置如下,clients可以是多个:ribbon:

eager-load:

enabled: true

clients: eureka-provider

java程序设计与数据结构(第4版)

116.1元

包邮

(需用券)

去购买 >

1bfc949d131c9dd9018581360eb2222f.png