[Kafka] 컨슈머 랙(Consumer Lag)

1. 컨슈머 랙(Consumer Lag)이란?

  • 파티션에 데이터가 들어가게 되면 각 데이터는 오프셋이라는 숫자가 붙게 됩니다.
  • 파티션이 하나인 토픽에 프로듀서가 데이터를 넣을 경우, 0부터 숫자 붙여지게 됩니다.
  • 만약 프로듀서가 데이터를 넣어주는 속도가 컨슈머가 데이터를 가져가는 속도보다 빠르다면, ‘프로듀서가 데이터에 넣은 오프셋’과 ‘컨슈머가 가져간 데이터의 오프셋’간의 차이가 생기게 됩니다. 이것이 컨슈머 랙(Consumer Lag)입니다.

스크린샷 2021-08-17 오전 12 46 33

  • lag은 적을수도, 많을수도 있습니다.
  • lag의 숫자를 통해, 현재 해당 토픽에 대해 파이프라인으로 연계되어 있는 프로듀서와 컨슈머의 상태에 대해 유추가 가능합니다.주로 컨슈머의 상태에 대해 유추할 때 사용합니다.

2. Lag이 여러개일 때

  • 토픽에 여러 파티션이 존재할 경우 lag 또한 여러개가 존재할 수 있습니다.
  • 한개의 토픽에 대한 lag이 여러 개 존재 할 때, 높은 숫자의 lag을 records-lag-max라고 부릅니다.

3. 정리

  • lag은 프로듀서 오프셋과 컨슈머 오프셋간의 차이입니다.
  • lag은 여러개가 존재할 수 있습니다.