이 글은 Udemy의 '초보자를 위한 아파치 카프카 강의 v3'를 듣고 정리한 내용이다.
토픽
- db로 치면 테이블과 비슷한 개념으로, 파티션을 구성할 수 있다.
- 모든 종류의 message format 가능 (avro, json, txt ..)
- message의 순서는 'data stream'으로 부름
- topic을 query할 수 없지만, consumer로 데이터를 보내 읽을 수 있게 할 수 있음
- 데이터가 한번 쓰이면 수정 불가 (immutable)
- 데이터는 한정된 시간만큼 보관된다 (디폴트는 일주일)
파티션
- 토픽 내에 여러개의 파티션을 만들 수 있다
- 파티션 내 메세지 순서는 파티션 내부에서만 한정적으로 보장된다 (파티션 간에는 순서 보장 x)
- topic은 immutable : partition에 데이터가 쓰이면 수정 불가
- 데이터가 토픽으로 들어오면 해당 메세지의 파티션은 임의로 할당된다 (키를 설정하지 않으면)
- 파티션 개수는 원하는 만큼 만들 수 있지만, 적절한 수의 파티션 개수를 갖는것이 좋음
오프셋
- 파티션에 메세지가 순차적으로 들어와 id를 순차적으로 갖게되는데, 이를 오프셋이라 부름
- 파티션내에 위치를 가리키는 의미로만 사용 (ex. 각 파티션의 오프셋 1은 같은 데이터를 가지고 있지 않음)
- 앞선 오프셋이 사라지더라도 해당 오프셋을 재사용할 수 없음
'Data Engineering > Kafka' 카테고리의 다른 글
[Kafka] Apache Kafka 초보 3 : 컨슈머 & 역직렬화 (0) | 2024.07.02 |
---|---|
[Kafka] Apache Kafka 초보 2 : 프로듀서 & 메시지 키 (0) | 2024.07.02 |