Topic
- 프로듀서로부터 전달된 데이터를 보관하는 역할
- 데이터를 구분하기 위해 사용하는 단위
- 토픽에는 한 개 이상의 파티션이 존재
Partition
- 하나의 토픽을 여러개의 파티션으로 분할한 것
- 각 파티션이 동시에 들어온 메세지를 처리하도록 구성하여 병렬 처리 방식으로 처리 속도를 높이기 위함
- 파티션을 늘리는 것은 가능하지만, 파티션을 줄이는 방법은 존재하지 않기 때문에 파티션을 줄이려면 토픽을 삭제해야함
Leader Partition
- 프로듀서 또는 컨슈머와 직접 통신하는 파티션
- 프로듀서/컨슈머와 직접 통신함으로써 읽기, 쓰기 연산을 담당
Follower Partition
- 프로듀서로부터 리더 파티션으로 전달된 데이터를 복제하여 복제된 데이터를 저장
- 같은 파티션의 팔로워가 동일한 브로커 내에 위치할 수 없음
- 리더 파티션이 속해있는 브로커가 장애가 발생한다면, 팔로워 파티션이 리더 파티션을 대신할 수 있음
- 단, ISR 그룹에 속한 팔로워 파티션만 리더 파티션이 될 자격을 갖고 있음
Record
- 프로듀서가 브로커로 전송하거나 컨슈머가 읽어가는 데이터
- 타임스탬프, 메세지 key/value, 오프셋, 헤더로 구성
- 타임스탬프는 프로듀서에서 해당 레코드가 생성된 시점의 유닉스 타임으로 설정
- 메세지 key는 브로커 내부 파티션에 메세지가 저장되는 위치에 관여
- 메세지 value는 실제 메세지가 전달하고자 하는 내용물을 의미
- 헤더는 레코드의 추가적인 정보를 담는 메타데이터 저장소를 뜻함
Offset
- 순차적으로 증가하는 64비트 형태
- 오프셋을 통해 컨슈머가 해당 토픽의 마지막에 읽은 레코드 위치를 알 수 있음