ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] Reactive Streams
    CS/개발 언어 (JAVA) 2021. 5. 16. 19:01

    Reactive Streams

    Reactive 프로그램을 위한 명세

    Non-Blocking과 Back-Pressure를 이용하여 비동기 스트림 처리의 표준을 제공하는 것이 목적

     

    Back-Pressure

    컴포넌트가 대처할 수 없고 장애가 발생하면 안되기 때문에 컴포넌트는 상위 컴포넌트들에 자신이 과부하 상태라는 것을 알려 부하를 줄일 수 있도록 해야한다.

    Subscriber가 Publisher에 Request()하는 과정

    push하는 데이터의 흐름을 제어

     

    Publisher

    무한한 data를 제공하고, 제공되는 data는 Subscriber에 의해 구독되는 형태로 처리

    subscribe() : subscriber를 받아들이는 메소드

     

    Subscriber

    onSubscrive() : Publisher가 생산하는 data를 받을 준비가 되었다.

    onNext() : 데이터 수신

    onError() : 데이터 전달에서 에러 발생

    onComplete() : 데이터 전달 완료

    Subscription을 등록하고 Subscription에서 오는 신호에 따라 동작

     

    Subscription

    Publisher와 Subscriber 사이에서 중계하는 역할을 수행

    request(long n) : Subscriber가 Publisher에게 데이터를 요청하는 개수

    cancle() : 구독을 취소하겠다는 의미

     

    C10K?

    만개의 클라이언트를 동시에 처리할 수 있는가?

    socket은 동시에 수백만개를 열수 있지만, blocking 프로그램은 많아야 수천개만 동시에 처리 가능

    댓글

Designed by Tistory.