티스토리 뷰
5.1 Reactor란?
- Spring Framework 팀의 주도하에 개발된 리액티브 스트림즈 구현체
- Spring Framework 5 버전부터 리액티브 스택에 포함
- Spring WebFlux 기반의 리액티브 애플리케이션을 제작하기 위한 핵심 역할
- 리액티브 프로그래밍을 위한 라이브러리로 Spring WebFlux 프레임워크에 포함된다고 보면 됨
- Reactor 공식 사이트 : https://projectreactor.io
- Reactive Streams
- Non-Blocking
- Java's functional API
- Flux[N] : Refactor의 Publisher 타입
- 0개부터 N개, 즉 무한대의 데이터를 emit할 수 있음
- Mono[0|1] : Refactor의 Publisher 타입
- 0개 또는 1개의 데이터를 emit할 수 있음 (단발성 데이터에 특화)
- Well-suited for microservices
- Backpressure-ready network
- 배압 : 배관으로 유입되는 가스나 액체 등의 흐름을 제어하기 위해 역으로 가해지는 압력
- 데이터 처리 시 과부하가 걸리지 않도록 제어
5.2 Hello Reactor 코드로 보는 Reactor의 구성요소
public static void main(String[] args) {
Flux<String> sequence = Flux.just("Hello", "Reactor");
sequence.map(data -> data.toLowerCase())
.subscribe(data -> System.out.println(data));
}
- Publisher : sequence
- 데이터 소스 : "Hello", "Reactor"
- Subscriber : System.out.println(data)
- Operator
- 데이터 생성 : just()
- 데이터 가공 : map()
> hello
> reactor
- 데이터 생성 및 제공
- 데이터 가공
- 전달받은 데이터 처리
'공부 > 스프링으로 시작하는 리액티브 프로그래밍' 카테고리의 다른 글
Chapter 07 | Cold Sequence와 Hot Sequence (0) | 2023.07.21 |
---|---|
Chapter 06 | 마블 다이어그램(Marble Diagram) (0) | 2023.07.21 |
Part 02 | Project Reactor (0) | 2023.07.21 |
Chapter 04 | 리액티브 프로그래밍을 위한 사전 지식 (0) | 2023.07.21 |
Chapter 03 | Blocking I/O와 Non-Blocking I/O (0) | 2023.07.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크