>Project Reactor (Reactor)
: 리액티브 스트림즈 표준 사양 구현체 중 하나(대표)
: Spring Reacive Web Application을 만드는데 핵심적인 역할을 함.
: Reactor 뿐 만 아니라 Spring WebFlux 를 사용.
: 즉, Spring Reacive Web Application은 Reactor를 이용한 Spring WebFlux 기반의 Application이다.
>Reactor 공식 홈
>Reactor 특징
1. Reactive Streams를 구현한 리액티브 라이브러리
2. Non-Blocking 통신 지원
3. Mono[0|1] 과 Flux[N]이라는 두 가지 타입의 Publisher 지원
//Mono[0|1] : 0건 혹은 1건의 데이터 emit 가능
//Flux[N] : N건의 데이터 emit 가능
4. MSA 구조에 적합한 라이브러리
: MSA(Microservice Architecture) 기반 애플리케이션은 서비스들 간의 통신이 잦기 때문에 요청 스레드를 차단하는 Blocking 통신을 사용하기 힘듬.
5. Backpressure전략 지원
: Subscriber가 처리할 수 있는 속도에 맞추어 Publisher의 emit 속도를 조절함.
>마블 다이어그램
-마블(구슬) : 하나의 데이터를 의미
-다이어그램 흐름 : 시간에 다른 데이터 변화 흐름
>스케쥴러
: Reactor Sequence 상에서 처리되는 동작들을 하나 이상의 쓰레드에서 동작하도록 별도의 쓰레드를 제공해주는 관리자
: Reactor의 Scheduler는 복잡한 멀티스레딩 프로세스를 단순하게 해주는 중요한 역할을 함.
'코드스테이츠_국비교육 > [Section4]' 카테고리의 다른 글
72.01_[Cloud] 운영 환경 구성_개요_22.12.02 (0) | 2022.12.02 |
---|---|
71.01_[Spring WebFlux] Spring Web Flux_22.12.01 (0) | 2022.12.01 |
69.01_[Spring WebFlux] 리액티브 프로그래밍_22.11.29 (0) | 2022.11.29 |
68.02_[Spring Security] OAuth2 인증_적용 흐름_22.11.28 (0) | 2022.11.28 |
68.01_[Spring Security] OAuth2 인증_적용(SSR)_22.11.28 (0) | 2022.11.28 |