반응형
log는 head와 tail을 가지고 있다. compacted log의 head는 전통적인 카프카 로그와 같다. 새로운 레코드들이 head의 끝에 append 된다. 모든 log compaction은 log의 tail에서 작동한다. 오직 tail만이 compact된다.
Kafka 로그 압축(Log Compaction)은 소비자가 압축된 토픽(compacted topic)에서 자신의 상태를 복구할 수 있도록 도와줍니다. 이 과정에서 메시지의 순서는 절대로 변경되지 않으며, 일부 메시지들은 삭제됩니다. 또한, 메시지의 파티션 오프셋(partition offset)은 절대로 변경되지 않습니다.
로그 구조
Kafka 로그는 헤드(head)와 꼬리(tail)로 구성됩니다.
- 헤드 (Head)
- 새로운 메시지는 항상 헤드 끝부분에 추가(append)됩니다.
- 이 부분은 기존 Kafka 로그와 동일하게 모든 메시지를 유지하며, 메시지 순서가 보장됩니다.
- 꼬리 (Tail)
- 로그 압축은 항상 압축된 꼬리(compacted tail)에서 작업합니다.
- 꼬리 부분에서 동일한 키를 가진 이전 메시지를 삭제하여 각 키의 최신 상태만 유지합니다.
https://docs.confluent.io/kafka/design/log_compaction.html
https://jaegukim.github.io/posts/log-compaction/
https://medium.com/swlh/introduction-to-topic-log-compaction-in-apache-kafka-3e4d4afd2262
반응형
'개발 > kafka' 카테고리의 다른 글
[kafka] 소비자 그룹 (Consumer Group) (0) | 2025.01.05 |
---|---|
[kafka] producer message key = 메시지 코디네이트(Message Coordinate) (1) | 2025.01.04 |
[kafka] Kafka Connect High-Level Overview + Cluster and Distributed Architecture (1) | 2025.01.03 |
[kafka] 토픽 생성 및 리스트 확인 + producer, consumer 메시지 전달 (mac m1) (0) | 2024.12.14 |
[kafka] kafka, zookeeper, server 시작하기 (mac m1) (0) | 2024.12.14 |