1.topic 이란?
Topic이란 논리적인 표현이며 메시지 저장소이다.
왼쪽의 producer가 토픽을 발행하면 우측의 consumer가 소비하는 형식이다.
토픽은 데이터베이스의 테이블 혹은 파일시스템의 폴더와 유사한 성질을 갖고 있따.
또 목적에 따라 각각의 이름을 가질 수 있는데 무슨 데이터를 담는지에 따라 명확하게 명명하는 것을 권장한다.
2. partition이란?
데이터 처리를 효율적으로 하기위한 핵심 요서. 파티션은 큐를 나눠서 병렬처리를 가능하게 하는 기본 단위, kafka의 토픽은 하나 이상의 파티션으로 나눠져 있다. 이를 통해 메시지가 병렬로 처리될 수 있게 된다.
파티션 개수는 지정 가능 하며 0번부터 오름차순으로 생성된다. 또 topic 내의 파티션들은 서로 독립적이다.
offset 이란 이벤트 메세지의 위치를 나타내는 값.
이 partition 안에 offset 이 존재하는데 다른 partition 의 offset 과는 다르다.
ex) partion0 offset 1 != partion1 offset 1
같은 partion 안에서는 순서가 보장 되며 데이터는 변경이 불가능(immutable) 하다.
하나의 토픽은 하나이상의 Partition으로 구성
병렬처리(Throughput - 처리율 향상)을 위해서 다수의 Partiotion사용
*CommitLog(추가만 가능하고 변경 불가능한 데이터 스트럭처, 데이터 이벤트는 항상 로그 끝에 추가되고 변경되지 않음)
3. Segment란?
발행된 메시지 데이터가 저장되는 실제 물리 File
segment file 은 지정된 크기보다 크거나 지정된 기간보다 오래되면 새 파일이 열리고 메시지는 새파일에 추가된다.
파티션당 오직 하나의 Segment가 활성화된다.
segment 들은 Rolling 정책을 쓴다.
log.segment.bytes(default 1 GB), log.roll.hours(default 168 hours)
'인강 정리 > Kafka 완전 정복' 카테고리의 다른 글
kafka 기본 개념 및 구성(4) (0) | 2024.10.31 |
---|---|
kafka 기본 개념 및 구성(3) (0) | 2024.10.30 |
kafka 기본 개념 및 구성(2) (0) | 2024.10.21 |
kafka 란? (0) | 2024.10.14 |