Topic / Partition / Record
- Kafka는 여러 개의 Topic을 가질 수 있다.
- Topic은 여러 개의 Partition을 가질 수 있다. (즉, 파티션이란 Topic을 분할한 것)
- Partition은 처음 생성 이후 추가만 가능하고 줄일 수 없다.
왜 하나의 Topic을 여러 개의 Partition으로 분산 저장하는가?
- 분산 저장하여 고가용성
- 파티션을 늘렸을 때 메세지는 Round-Robin 방식으로 write
- 하나의 파티션 내에서는 메세지 순서가 보장되지만, 파티션이 여러 개일 경우에는 순서 보장 X
레코드(Record)
- Partition 내 Producer가 보낸 데이터 내용
- 타임스탬프, 메세지 키, 메세지 값, 오프셋, **헤더**로 구성
- 메시지 키: 메시지를 순서대로 저장 (메시지 키가 있으면 특정 파티션에 저장 가능)
- 브로커에 한번 적재된 레코드는 수정할 수 없고 **로그 저장 기간 또는 용량**에 따라서 삭제
'Solution' 카테고리의 다른 글
[ElasticSearch] 개념 (0) | 2024.06.26 |
---|---|
[Apache Kafka] 커밋, Offset과 Lag (0) | 2024.06.24 |
[Apache Kafka] Consumer Group (0) | 2024.06.24 |
[Apache Kafka] Kafka 개념 (0) | 2024.06.24 |