programing

Spring Webflux / WebClient에서 이벤트 루프 풀 크기를 설정하는 방법은 무엇입니까?

oldcodes 2023. 6. 28. 21:58
반응형

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. 재정의ReactiveWebServerFactory이벤트 루프 리소스 구성을 적용하는 커스터마이저를 사용합니다.

    @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

이벤트 루프는 Spring 프로젝트 리액터에 의해 구현되며, 모든 요청은 이벤트 루프에 의해 처리되며, 내부적으로 반응형 Netty를 사용하여 웹 요청을 처리합니다.부트 2.XX는 Reactor Netty 0.8 이상 버전을 사용하며, 동등한 시스템 속성은 Reactor로 명명됩니다."기본 작업자 스레드 수"로 문서화된 netty.ioWorkerCount.

이를 추가하여 이벤트 루프 풀 크기를 정의할 수 있습니다.

VM 인수 - 리액터입니다.netty.ioWorkerCount=2

예: java -jar your-app.jar - Dreactor.netty.ioWorkerCount=2

언급URL : https://stackoverflow.com/questions/48607114/how-to-set-event-loop-pool-size-in-spring-webflux-webclient

반응형