728x90
반응형
MSK 설정에 따른 컨슈머 lag 1 발생 현상
- 중복 및 정확히 한번만 처리하기 위한 멱등적 프로듀서 설정 및 카프카 트랜잭션 적용
- kafka 에서 트랜잭션 커밋 메시지를 찍는데, 이 때 컨슈머가 해당 트랜잭션이 적용된 커밋 메시지의 오프셋은 읽지 않음
이것은 kafka에서 발급하는 해당 파티션의 트랜잭션 커밋 메시지가 unreadable이기 때문이며 이에 따라 컨슈머는 트랜잭션이 적용된 커밋 메시지를 읽지 못하므로 항상 컨슈머 lag 1이 발생하게됨
EstimatedMaxTimeLag 추정치 지표 실험
- 14시 10~15분 -> 5분간 kafka 브로커로 직접 100개 호출
- 트랙잭션 미적용 프로듀서라 Offset Lag 0
- 14시 25~30분 → 5분간 트랜잭션 적용된 프로듀서를 통해서 100개 호출
- 트랜잭션 적용 프로듀서라 Offset Lag 1
- 그럼 트랜잭션 적용 후 offset 을 1 → 0으로 줄일 수 없나?
- 현재로는 없다. 태생이 그렇다.
- 하위 참고 문서들을 보면 spring kafka issue를 통해 담당자가 kafka issue에도 이슈를 올렸으나
- 중요도가 낮음으로 아직도 처리되지 않음 open 이슈임
- 관련 지표 설정
- n분 동안 n초 이상을 넘어가면 경보 (EstimatedMaxTimeLag)
- lag > 1 이상으로 n분 지속되면 경보 (OffsetLag)
- datadog latency 지표 기준 설정
Ref.
Kafka Sink Connector lags always show 1 even after processing all records
[KAFKA-10683] Consumer.position() Ignores Transaction Marker with read_uncommitted - ASF JIRA
Akhq UI shows Consumer lag always 1 for jdbc sink connector even though all messages are consumed
728x90
반응형
'Programming-[Backend] > Kafka' 카테고리의 다른 글
[카프카 핵심가이드] 9. 모니터링 (2) | 2024.11.17 |
---|---|
[카프카 핵심가이드] 8. 클러스터간 데이터 미러링하기 (0) | 2024.11.16 |
[카프카 핵심가이드] 7. 멱등적 프로듀서와 트랜잭션 (1) | 2024.11.15 |
[카프카 핵심가이드] 5. 카프카 어드민 (0) | 2024.11.10 |
[카프카 핵심가이드] 3. 프로듀서 (2) | 2024.11.09 |