Project Reactor

22·2024년 5월 11일

Spring

목록 보기
5/5

Reactor란 ?

  • Spring WebFlux 기반의 리액티브 애플리케이션을 제작하기 위한 핵심 역할이다.

특징

  • 리액티브 스트림즈의 구현체이다.
  • Non-Blocking
  • Flux[N] : Reactor 의 Publisher 타입 중 하나이다. N 개의 데이터를 emit 한다는 것이다.
  • Mono[0|1] : Reactor 의 Publisher 타입 중 하나이다.
  • Well-suited for microservices: 마이크로 서비스 기반 시스템이 적합한 시스템 중 하나이다.
  • Backpressure-ready network: Reactor 는 Publisher 로부터 전달받은 데이터를 처리하는 데 과부하가 걸리지 않도록 제어하는 backpressure 를 지원한다.

구성요소

  • 아주 간단하지만 핵심 구성요소를 갖고 있다.
public class reactor {
    public static void main(String[] args) {
        // Publisher 이다. "Hello", 1. Publisher : 데이터를 생성해서 제공하고, 
        Flux<String> sequence = Flux.just("Hello", "Reactor");
        sequence.map(data -> data.toLowerCase()) // 2. 데이터를 가공하고,
            .subscribe(data -> System.out.println(data)); // 3. Subscriber : 전달받은 데이터를 처리한다.   
    }
}

출처 : 스프링으로 시작하는 리액티브 프로그래밍 챕터5

0개의 댓글