컨슈머 랙(Consumer Lag)이란?
- 토픽의 최신 오프셋(LOG-END-OFFSET)과 컨슈머 오프셋(CURRENT-OFFSET)의 차이를 뜻함
- 컨슈머 랙은 컨슈머 그룹과 토픽(파티션)별로 생성됨
- 프로듀서는 계속해서 새로운 데이터를 파티션에 저장하고 컨슈머는 자신이 처리할 수 있는 만큼의 데이터를 소비를 하게 됨
- 이러한 과정에서 컨슈머가 프로듀서의 데이터 저장 속도를 따라가지 못하고 컨슈머의 Current-Offset과 차이가 발생하게 되는 경우가 컨슈머 랙은 늘어나게 됨
- 반대로 프로듀서가 보내는 데이터량이 컨슈머의 데이터 처리량보다 적으면 컨슈머 랙은 줄어들어 최솟값이 0인 지연이 없는 상태가 됨
복수 파티션의 경우
- 위 이미지와 같이 1개의 컨슈머, 1개의 토픽, 3개의 파티션으로 구성되어 있는 경우 컨슈머 그룹에 대한 랙은 총 3개가 존재하게 됨
- 컨슈머 그룹에 속한 랙이 여러개 존재할 때 가장 높은 숫자의 랙을 RECORDS-LAG-MAX 라고 부른다
컨슈머 랙 모니터링
- 컨슈머 랙을 통해 컨슈머의 상태에 대해 유추할 수 있음
- 컨슈머 랙 모니터링 함으로써 경우에 따라 컨슈머의 개수를 파티션 만큼 늘려 병렬처리량을 늘려 랙을 줄이거나 컨슈머의 상태이상을 확인할 수 있다