flow-controlqueuethroughput

backpressure를 설명해 주세요

예상 시간
7
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

queue를 크게 만들면 backpressure가 필요 없나요?

부가 설명

처음에는 queue를 두면 모든 문제가 풀리는 것처럼 보입니다. 하지만 소비자가 초당 100개만 처리하는데 생산자가 초당 1,000개를 넣으면 queue는 계속 커집니다. 이때 필요한 것이 backpressure입니다. 밀려 있다는 사실을 숨기지 않고, 위쪽 흐름에 전달해야 합니다.

Backpressure는 단순히 느린 소비자를 보호하는 장치가 아닙니다. 어떤 신호로 조절하는지, 어디에서 거절할지, 버퍼를 얼마나 둘지까지 포함합니다. Node stream, message queue, API rate limit, async worker pool 모두 비슷한 관점으로 볼 수 있습니다.

한 줄 정리

backpressure는 처리 가능한 속도에 맞춰 흐름을 늦추는 시스템 보호 장치입니다.