[WebFlux] Publisher Subscriber 패턴(발행 구독패턴)

민지의 회고록·2023년 9월 6일
  • 마이크로 서비스 패턴 중 하나인 발행구독 패턴.

  • 비동기방식

  • Publisher : 이벤트(메시지)를 발행하며 특정 Channel(Topic)에 이벤트를 전송
    - subscribe 메소드 구현한다 : 동작 구조 정의

  • Subscriber : 특정 Channel에 구독하며, Publisher에 관계없이 발행된 이벤트를 받음
    - onSubscribe : 구독을 수행할지 말지를 결정

    • onNext : 일련의 스트림 처리
    • onError : 일련의 스트림을 처리하다 예외 혹은 에러 처리
    • onComplete : 처리 완료 시 수행되는 메서드
  • Subscription : Publisher가 가지고 있는 정보이다. 일련의 스트림이 쌓였을 때, 구독자들에게 어떻게 전달할 지를 정하는 정보이다.
    - request : 스트림을 구독자에게 전달할 때의 방식 결정

    • cancel : 구독 정보를 끊음


1. publisher가 subscription 정보를 가지고 있다
2. subscriber는 publisher를 구독한다.
3. 일련의 스트림이 존재하면 publisher는 subscriber에게 스트림의 내용을 전달한다
4. subscriber는 publisher가 전해주는 스트림들을 처리한다.

  • WebFlux에서의 유의사항
    subscribe함으로써 publisher와 subscriber는 연결되고, subscriber로부터 publisher로 upstream으로 요청하여 publisher가 동작하도록 만드는 것이다.

이를 subscriber가 publisher를 pulling(당기다)한다고 표현한다. 또는 publisher가 subscriber로 push 한다고도 말한다.

profile
민지가 공부한 내용을 회고합니다~~

0개의 댓글