Reactive Streams 개요 (4/10)
History
- 2011년 6월 - MS 닷넷 프레임워크를 위한 Reactive Extensions 배포
- 2013년 2월 - Netflix 기술 블로그에서 RxJava (0.5) 공개
- 2013년 9월 - Reactive manifesto v1 공표
- 2013년 11월 - Pivotal Project reactor 1.0.0 배포
- 2014년 9월 - Reactive manifesto v2 공표
- 2014년 11월 - Netflix RxJava 1.0 배포
- 2015년 4월 - reactive streams 1.0.0 java 9와 함께 배포
- 2015년 4월 - akka stream 1.0 배포
- 2017년 8월 - reactive streams 1.0.1 배포
- 2021년 7월 - red hat의 mutiny 1.0 배포
Netflix 트래픽 증가로 인한 문제 발생
- 3년 사이에 2,000만건에서 100배 상승한 20억건으로 증가.
- 다양한 기기로부터 Main페이지만 조회하더라도, API 수십개씩 호출하는 경우 발생
- 많은 기기와, 많은 요청, dependency에 요청을 주고 받으며 트래픽을 버티는 게 어려워짐
클라이언트를 개선했지만 여전히 많은 서버 요청들
- 클라이언트를 개선하였고, 여러개의 요청을 하나의 요청으로 개선
- 하나의 페이지 때문에 많은 요청을 나눠서 보내게 되면, Network Latency 문제
- 요청을 하나로 개선하여 Network Latency를 줄임
- 10번 보낼 것을 1번으로 줄였지만, 서버 사이드에서는 10개의 요청을 처리하는 것은 동일
Netfilx RxJava로 해결
- RxJava를 이용해 Asynchronous Java API 사용
- 여러 dependency들 사이 효율적으로 데이터를 갖게 오게 만듬
- asynchronous하게 작업함으로, 트래픽을 버티는데 굉장히 큰 도움이 됨