如何在Spring Webflux / WebClient中设置事件循环池大小?

在Vert.X等多反应堆框架中,我们可以设置事件循环线程的数量,例如:

final VertxOptions vertxOptions = new VertxOptions(); vertxOptions.setEventLoopPoolSize(16); final Vertx myVertx = Vertx.vertx(vertxOptions); 

如何在Spring Boot 2 WebFlux / WebClient中进行等效操作?

你有两个选择:

  1. 使用应用事件循环资源config的自定义程序覆盖ReactiveWebServerFactory bean:

     @Bean public ReactiveWebServerFactory reactiveWebServerFactory() { NettyReactiveWebServerFactory factory = new NettyReactiveWebServerFactory(); factory.addServerCustomizers(builder -> builder.loopResources(LoopResources.create("my-http", 16, true))); return factory; } 
  2. 或者使用-Dreactor.ipc.netty.workerCount=16环境变量。 默认情况下,它的值设置为Math.max(availableProcessors(), 4)