EmitterProcessor가 @Deprecated 돼서 Sinks.many()로 대체 사용
*EmitterProcessor 내부에서 Sinks를 사용하고 있음
*Processor : 처리 단계를 나타내며 발행자 인터페이스와 구독자 인터페이스를 모두 상속
*자세한 설명 생략
▷ Sinks.many()
- 데이터를 구독 받고, 구독한 데이터를 다시 발행할 때 사용
- 여러 subscriber가 사용할 수 있는 구독과 발행이 동시에 일어나는 프로세서
- 내부 queue를 가지고 있어 subscriber가 없더라도 해당 데이터를 큐에 쌓음
종류 | 설명 |
unicast() | 하나의 Subscriber만 허용(즉, 하나의 Client 만 연결) |
multicast() | 여러 Subscriber를 허용 |
multicast().onBackpressureBuffer() | Subscriber는 구독 이전에 발행된 이벤트들을 모두 받음 |
multicast().directAllOrNothing() | Subscriber는 구독 이후에 발행된 이벤트들을 받음 |
replay() | 여러 Subscriber를 허용, 구독 이전에 발행된 이벤트들을 모두 받음 |
종류 | 설명 |
tryEmitNext() | 대기열 메시지를 방출 |
asFlux() | Sinks에서 Flux로 가져옴(Sinks.empty(), Sinks.one()) |
asMono() | Sinks에서 Mono로 가져옴(Sinks.many()) |
▷ 참고
Reactor 3 Reference Guide
10:45:20.200 [main] INFO reactor.Flux.Range.1 - | onSubscribe([Synchronous Fuseable] FluxRange.RangeSubscription) (1) 10:45:20.205 [main] INFO reactor.Flux.Range.1 - | request(3) (2) 10:45:20.205 [main] INFO reactor.Flux.Range.1 - | onNext(1) (3) 10:45:20.
projectreactor.io
▷ 관련 글
Spring WebFlux 란?
* 자세한 설명 생략 ▷ WebFlux란? - Spring WebFlux는 Spring 5에서 새롭게 추가된 모듈 - Reactive-stack Web Framework이며 non-blocking의 reactive stream을 지원 - Flux와 Mono라는 두 종류의 Publisher와 Cold, Hot 방식 존재 -
coding-today.tistory.com
SpringBoot에서 MQTT Client + WebFlux 구축
WebFlux를 적용한 MQTT Client를 구축하고 Topic 메시지 도착 시 Callback으로 Bean을 통해 서비스 구분 *Mqtt Broker(mosqitto) 아래 관련 글 참고 *자세한 설명 생략 ▷ Project 전체 구조 *파일 이름으로 검색 가능
coding-today.tistory.com
'▶ Back-End > 개념 요약' 카테고리의 다른 글
서블릿(Servlet) 이란? (0) | 2023.02.03 |
---|---|
Spring 이란? (0) | 2023.02.01 |
Spring WebFlux Non-Blocking 방법 (0) | 2022.11.29 |
스레드 풀(Thread Pool) 이란? (0) | 2022.11.22 |
R2DBC 란? (0) | 2022.11.11 |
댓글