본문으로 바로가기

Consumer Lag 이란

category MQ 2024. 12. 12. 08:24
반응형


Consumer Lag 이란?

  • Kafka를 운영하면서 시스템 성능과 데이터 처리 효율을 평가하는데 중요한 지표 중 하나입니다.
  • Consumer Group이 메시지를 처리하는 속도가 메시지를 Pub 하는 속도보다 느릴 때 발생하는 지연을 나타냅니다.

 

https://www.redpanda.com/guides/kafka-performance-kafka-consumer-lag

 

 

Consumer Lag 계산

  • Latest Offset
    • Kafka 브로커에 현재 저장된 가장 최신 메시지의 Latest Offset.
  • Current Offset
    • Consumer가 마지막으로 처리한 메시지의 Commit Offset.

Lag = Latest Offset - Commit Offset

 

 

Consumer Lag이 발생하는 이유

  • Consumer 처리 속도
    • 각 서버에 자원이 부족하거나 비즈니스 처리 로직에 병목이 있는 경우
  • Producer 트래픽 급증
  • Partition 불균형
    • 특정 파티션에 데이터가 집중되면서 처리 속도가 느려지는 경우

 

Consumer Lag 영향

  • 실시간 처리 지연.
  • 시스템 불안정
    • Lag이 계속 증가하면 Consumer 애플리케이션이 오버로드되어 처리 속도가 느려질 수 있음.
  • 데이터 손실 위험
    • Lag이 너무 커져 브로커의 메시지 보관 기간을 초과하면 메시지가 삭제될 수 있음.

 

Consumer Lag 해결 방법

  • Consumer Lag 모니터링
    • 임계값 설정 및 알림 설정
  • Consumer 최적화
    • 컨슈머의 처리 속도를 향상시키기 위해 하드웨어, 처리 로직 최적화.
  • Consumer 스케일링
    • Consumer Group에 더 많은 인스턴스를 추가하여 처리 능력

 

모니터링 구성

 

https://kedify.io/resources/blog/keda-kafka-improve-performance-by-62-15-at-peak-loads/

 

Kafka Exporter를 사용해 Kafka의 metrics 데이터를 만들고 Prometheus가 해당 metrics를 수집해서 시각화 도구 Grafana로 보이도록 구성했습니다.

 

Prometheus Target

 

 

Grafana Dashboard 구성

 

 

Lag 테스트

특정 토픽 Consume 중지 후 메시지 Pub

 

특정 토픽 Consumer

반응형