在Vert.X等multi-reactor框架中我们可以设置事件循环线程的数量,例如:
final VertxOptions vertxOptions = new VertxOptions();
vertxOptions.setEventLoopPoolSize(16);
final Vertx myVertx = Vertx.vertx(vertxOptions);
如何在 Spring Boot 2 WebFlux/WebClient 中进行等效操作?
最佳答案
你有两个选择:
使用应用事件循环资源配置的定制器覆盖
ReactiveWebServerFactory
bean:@Bean public ReactiveWebServerFactory reactiveWebServerFactory() { NettyReactiveWebServerFactory factory = new NettyReactiveWebServerFactory(); factory.addServerCustomizers(builder -> builder.loopResources(LoopResources.create("my-http", 16, true))); return factory; }
或者使用
-Dreactor.ipc.netty.workerCount=16
环境变量。默认情况下,它的值设置为Math.max(availableProcessors(), 4)
。 示例:java -jar your-app.jar -Dreactor.ipc.netty.workerCount=16
关于java - 如何在 Spring Webflux/WebClient 中设置事件循环池大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48607114/