완화전략 - Backpressure, Throttling 이란? :: 잡다한 프로그래밍
반응형

1. Backpressure(배압) 현상 이란?

배압이란 데이터 생산(Producer)과 소비(Consumer)가 불균형적일 때 일어나는 현상이다.

만약 10,000개의 데이터를 0.1초마다 발행하고, 소비는 10초마다 한다면? 데이터는 스트림에 계속 쌓이게 된다.

이는 OutOfMemoryError(OOM)로 이어져 어플리케이션이 죽게 될 것이다.

이러한 현상을 배압(Backpressure)이라고 하며 RxJava에서는 배압 현상을 제어할 수 있는 방법을 제공한다.

 

2. 어디서 주로 발생?

생산자, 소비자 라는 내용이 이전 내용과 비슷하지 않은가? (대용량 처리, kafka 참고) 생산자가 reactive하게 데이터를 쌓고, 소비자가 이를 가져다가 사용하는 구조에서 주로 발생하게 된다.

※ 정리하면 non-blocking 방식으로 데이터를 보내는구조에서 발생

 

3. Backpressure를 예방하기 위한 전략

 

반응형

+ Recent posts