Notice
Recent Posts
Recent Comments
Link
개발자는 기록이 답이다
패스트캠퍼스 환급챌린지 19일차 미션 (2월 19일) : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기 본문
패스트캠퍼스
패스트캠퍼스 환급챌린지 19일차 미션 (2월 19일) : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기
slow-walker 2024. 2. 19. 23:04Reactive streams
- 비동기데이터스트림처리를위한표준
- Publisher는Subscriber에게 비동기적으로 이벤트를 전달
- onSubscribe: subscriber가 publisher 사 이에 연결이 시작될때 호출. Subscription 객 체를 전달
- onNext: Publisher가 데이터를 생성하고 Subscriber에게 전달. Subscriber는 데이터 를받고처리
![](https://blog.kakaocdn.net/dn/EjrbS/btsFCCkRJzM/kCgMK53F61ON5KqqEBkzek/img.png)
- onComplete : 모든아이템이전달완료.더이 상 전달할 데이터가 없을때 호출. Publisher와 Subscriber의 연결이 종료
- onError : 데이터스트림처리중오류가발생 했을때 호출. 오류 정보를 전달하고 Publisher 와 Subscriber의 연결이 종료
Subscription
public static interface Subscription {
public void request(long n);
public void cancel();
}
- request: Subscriber가 Publisher에게 n개 의 데이터를 요청. Subscriber가 처리 가능한 만큼만 요청
- cancel: Subscriber가 데이터 요청을 취소하 고 연결을 종료. Subscriber가 더 이상 데이터 를받지않거나 에러가 발생한 경우 호출
Reactor
- Reactive streams를 구현한 비동기 데이터 스 트림 처리를 지원
- Spring webflux에서 메인으로 사용
- backpressure를제공하여안정성을높이고
- 다양한 연산자로 다양한 연산들을 조합하여 가독성 증대
Reactor와 컨베이어 벨트
- 컨베이어벨트에비유
- 데이터는소스(Publisher)에서나와서소비자(Subscriber)에게 전달
- 원재료는다양한변형과중간단계를거치고중 기도 중간 부품을 모으는더큰조립라인의일부가되기도
- 한 지점에서 결함이 발생하거나 벨트가 막히게 되면 업스트림에 신호를 보내서 흐름을 제한
Reactor Publisher
![](https://blog.kakaocdn.net/dn/Zqfff/btsFELnN6fn/2dzOtZ0q2LuWiOmzQFHyPK/img.png)
- Reactor에서Mono와Flux제공
- CorePublishser는 reactive streams의
- Publishser를 구현
- reactive streams와 호환
※ 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. https://bit.ly/48sS29N