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

标签 java spring spring-boot project-reactor spring-webflux

在Vert.X等multi-reactor框架中我们可以设置事件循环线程的数量,例如:

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

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

最佳答案

你有两个选择:

  1. 使用应用事件循环资源配置的定制器覆盖 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)。 示例:java -jar your-app.jar -Dreactor.ipc.netty.workerCount=16

关于java - 如何在 Spring Webflux/WebClient 中设置事件循环池大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48607114/

相关文章:

java - Vaadin 国际化问题 : java. util.MissingResourceException

java - 我应该下载哪个 Eclipse 版本?

Java URL 协议(protocol) : classpath:/?

spring-boot - 记录错误Spring Boot Gradle

java - 从 Java 的一个流中读取文本和二进制文件

java - 用 Java 将简单的文本打印到纸上

java - 是否存在不可解析的循环引用

Java Spring localhost 项目名称转换为 URL

java - 无法使用 Gmail SMTP 在 Spring Boot 中发送电子邮件

java - Spring Boot @ConfigurationProperties 正确用法