리액티브 스트림즈(reactive streams)란
리액티브 라이브러리를 어떻게 구현할지 정의해 놓은 별도의 표준 사양
데이터 스트림을 non-blocking이면서 비동기적인 방식으로 처리하기 위한 리액티브 라이브러리의 표준 사양
그 구현체 예시 RxJava, Reactor..
리액티브 스트림즈(reactive streams) 구성 요소
- publisher : 데이터 생성하고 통지
- subscriber : 구독한 publisher로 부터 통지된 데이터를 전달받아서 처리
- subscription : publisher에 요청할 데이터의 개수를 지정, 데이터의 구독을 취소
- processor : publisher + subscriber
출처 : https://www.moelzayat.com/reactive-programming-reactor-java-best-practices-tips-and-tricks/
Publisher interface
subscribe 메서드를 통해서 Subscriber를 등록
Subscriber interface
onSubscribe : 구독 시작 시점에 어떤 처리를 하는 역할 ( ex : publisher에게 요철 할 데이터의 개수를 지정..)
onNext : publisher가 통지한 데이터를 처리하는 역할
onError : publisher에서 에러가 발생했을 때, subscriber의 해당 메서드 호출
onComplete : publisher가 데이터 통지를 완료했음을 알릴 때 호출
Subscription interface
publisher가 subscriber에게 전달하는 객체로
해당 객체를 통해 publisher, subscirber가 필요한 정보를 주고 받는다
해당 interface들을 구현한 예시
output