반응형
Consumer Lag 이란?
- Kafka를 운영하면서 시스템 성능과 데이터 처리 효율을 평가하는데 중요한 지표 중 하나입니다.
- Consumer Group이 메시지를 처리하는 속도가 메시지를 Pub 하는 속도보다 느릴 때 발생하는 지연을 나타냅니다.
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에 더 많은 인스턴스를 추가하여 처리 능력
모니터링 구성
Kafka Exporter를 사용해 Kafka의 metrics 데이터를 만들고 Prometheus가 해당 metrics를 수집해서 시각화 도구 Grafana로 보이도록 구성했습니다.
Prometheus Target
Grafana Dashboard 구성
Lag 테스트
특정 토픽 Consume 중지 후 메시지 Pub
특정 토픽 Consumer
반응형
'MQ' 카테고리의 다른 글
CDC (Change Data Capture) 구현해보기 (0) | 2024.12.20 |
---|---|
MSA 환경 트랜잭션 (1) | 2024.11.28 |
Kafka 공통 메시지 포맷을 위한 제네릭 적용하기 (0) | 2024.09.12 |
Kafka Pub CircuitBreaker 적용하기 (0) | 2024.09.07 |
Kafka Pub 동적 Batch 관리 (0) | 2024.08.18 |