티스토리 뷰

learning

Reactive Programming 소개 (1/12)

눈침침 2021. 3. 2. 00:11

Tech.io의 'Reactive Programming with Reactor 3'을 공부하면서 정리하는 글입니다.


Reactor 3

왜?

리액티브 프로그래밍은 완전 비동기적이고, 논 블록킹 하게 구현되어 있으며, 이벤트 중심으로 동작합니다. 이런 특징으로 인해 리액티브 프로그래밍을 도입하면, 복잡한 저 수준의 코드를 작성할 필요 없이 효율적으로 대용량 처리가 가능합니다.

리액티브 스트림

리액티브 스트림은 4개의 인터페이스로 정의되어 있고, 구현체는 다음과 같은 것이 있습니다.

  • Reactor 3
  • RxJava (Version 2 ~)
  • Akka Streams
  • Vert.x
  • Ratpack

4개의 인터페이스는Subscriber / Publisher / Subscription / Processor입니다.

상호작용

리액티브 스트림은 Publisher에서 데이터가 시작되고, 기본적으로 Subscriber가 '1. subscrive' 를 호출하는 순간 Publisher 에서 Subscriber로 데이터가 전달이 시작됩니다.

출처: LINE Enginering - Armeria로 Reactive Streams와 놀자!

위 다이어 그램 중, 3. request(n)Subscriber 가 데이터를 콕 집어서 몇 개 달라고 요청하는데, 이 부분이 'Backpressure(=배압?)'을 조절하는 부분입니다.

연산자

리액터는 '연산자(Operators)' 개념을 추가하였는데, 이는 각 단계에서 데이터를 어떻게 처리할지를 정의합니다. 이 연산 차를 거친 뒤, 최종 데이터는 Subscriber에 의해 처리됩니다.

 

관련글

2021/03/02 - [learning] - Flux 인스턴스 생성하기 (2/12)

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함