SpringWebflux 학습내용 정리 (9)

Kevin의 알기 쉬운 Spring Reactive Web Applications 정리

Spring Webflux

Full-width image

Reactor에서 시퀀스를 생성하는 퍼블리셔는 Flux와 Mono가 있다

  • onNext, onComplete 같은 시그널을 내부적으로 발생시킴, 프로그래밍적인 코드가 보이지 않음
  • 내부적으로 알아서 처리함
  • Sinks는 이러한 시그널을 프로그래밍적으로 전송할 수 있는 퍼블리셔의 한 종류
    • Processor보다 나은 대안이 된다 -> Thread-Safe 하기 때문
    • Reactor 3.5.0부터 processor는 제거됨

Reactor에서 Scheduler는 Thread를 관리하는 관리자 역할

  • 구독시점에 데이터가 emit되는 영역과 와 emit된 데이터를 operator를 이용해 가공하는 영역을 분리하여 멀티쓰레딩을 가능하게 함
  • operator chain에서 스케줄러를 전환하는 역할
  • Scheduler를 통해 생성된 스레드 실행모델을 지정하는 부분

Full-width image

  • PublishOn operator
    • 이하 downStream operator들을 지정된 스레드에서 실행하게 된다
  • subScribeOn operator
    • 최상위 Upstream publisher 가 데이터를 emit하기 위한 실행스레드를 지정하게 된다
  • parelle() operator
    • downStream에 대한 데이터처리를 병렬로 분할 처리하기 위함

Full-width image

  • Scheduler.pararell()의 스레드 갯수는 CPU에서 지원하는 논리적인 코어와 연관있다

© 2019. All rights reserved.

Powered by Hydejack v8.1.1