개별 소비와 배치 배출

큐에서 꺼내는 방식은 잠금 횟수와 실패 복구 경계를 함께 바꾼다.

개별 take

항목 하나씩 대기하고 처리하여 흐름이 단순하다.

호출 횟수 증가

drainTo 배치

현재 항목 여러 개를 지역 목록으로 한꺼번에 옮긴다.

처리량 개선 가능

큐 안 상태

배출이 끝난 항목은 더 이상 원래 큐에 존재하지 않는다.

소유권 이전

외부 처리 실패

재처리 저장소가 없으면 지역 배치가 유실될 수 있다.

내구 정책 필요
판정배치 성능과 실패 후 복구 가능성을 동시에 설계한다.

핵심: BlockingQueue의 원자성은 큐 밖 외부 저장 작업까지 확장되지 않는다.