인프런 커뮤니티 질문&답변

whsrpdla님의 프로필 이미지
whsrpdla

작성한 질문수

Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부

Backpressure Example 코드 설명

backpressure latest 전략

해결된 질문

작성

·

31

0

image.png

백프레셔 latest 전략으로 코드를 돌려보니 버퍼가 가득찼는데 새로 데이터가 들어오면 기존에 버퍼에 있던 데이터들이 모두 사라지는 것처럼 보여서 reactor 공식문서를 찾아보니

 

Discard Support: Each time a new element comes in (the new "latest"), this operator discards the previously retained element.

 

라고 하는걸로봐서 버퍼가 가득 찬 상태에서 새로 데이터가 들어오면 버퍼에 기존에 있던것들 다 비워버리고 최신 데이터를 버퍼에 넣는 것 같아요

답변 2

0

Kevin님의 프로필 이미지
Kevin
지식공유자

안녕하세요.

Discard Support: Each time a new element comes in (the new "latest"), this operator discards the previously retained element.

제가 알고있는 바로는 공식 문서에 나와 있는 이 문장의 의미는 매 시점마다 들어오는 데이터(new element) 중에서 바로 직전 시점에 남겨진 데이터를 discard하고 그 다음 시점에 들어온 데이터가 최신 데이터가 되어서 버퍼에 들어갈 공간이 있게되는 시점에 버퍼 안에 채워지는걸로 알고 있습니다.

여기서 말하는 previously retained element는 들어오는 데이터들 중에서 가장 최근에 들어오는 데이터 중에서 오래된 데이터를 의미하는데, 버퍼를 다 비운다는 설명이 구체적으로 나와 있지는 않습니다.

 

말씀하신것과 조금 유사한 방식으로 버퍼 내부에서 어떤 데이터를 drop 할 것인지를 핸들링하는 전략인 onBackpressureBuffer()를 사용할 수 있습니다.

whsrpdla님의 프로필 이미지
whsrpdla

작성한 질문수

질문하기