728x90
Topic

- Topic은 여러 개의 Partition으로 구성된 일련의 로그 파일
- RDBMS의 Table과 유사한 기능
- Topic은 Key와 Value 기반의 메시지 구조이며, Value로 어떤 타입의 메시지도 가능하다.
- 문자열, 숫자값, 객체, JSON.. 등
- 로그 파일과 같이 연속적으로 발생하는 데이터를 저장하는 구조
Topic의 특징

- Topic은 시간의 흐름에 따라 메시지가 순차적으로 물리적인 파일에 Write 된다.
Topic과 Partition

- Topic은 1개 이상의 파티션을 가질 수 있다.
- Topic의 Partition은 Kafka의 병렬 성능과 가용성 기능의 핵심 요소이며, 메시지는 병렬 성능과 가용성을 고려한 개별 파티션에 분산 저장된다
Topic과 Partition, Offset

- 개별 파티션은 정렬되고 변경할 수 없는 일련의 레코드로 구성된 로그 메시지
- 개별 레코드는 offset으로 불리는 일련번호를 할당받음
- 개별 파티션은 다른 파티션과 완전히 독립적임
- 개별 파티션 내에서 정렬되고 offset이, 할당된다
Topic과 파티션의 병렬 분산 처리

- 메시지는 병렬 성능과 가용성을 고려한 방식으로 토픽 내의 개별 파티션들에 분산 저장된다.
- 토픽의 파티션들은 단일 카프카 브로커뿐만 아니라 여러 개의 카프카 브로커들에 분산 저장된다.
- 가용성을 지키기 위해 replication-factor를 활용한다.
실습
kafka/bin/kafka-topics command를 이용
| 주요 인자 | 설명 |
| --bootstrap-server | Topic을 생성할 Kafka Broker 서버 주소(Port) ex) --bootstrap-server localhost:9092 |
| --create | --topic: 기술된 topic명으로 topic 신규 생성 --paritions: Topic의 파티션 갯수 --replication-factor: replication 갯수 |
| --list | 브로커에 있는 Topic들의 리스트 |
| --describe | --topic: 기술된 topic명으로 상세 정보 표시 |
1) Topic 생성과 이름 주기

2) Topic 리스트 확인하기

3) Partitions의 3개를 가지는 토픽 생성과 토픽 상세 보기


4) Replication-factor를 2로 Topic 생성(현재는 오류 발생: Broker가 하나기 때문)

5) Topic 삭제

참고
Partition의 기본값은 kafka/etc/kafka/server.properties에 있다.

Kafka Topic에 Partition 별로 로그 파일이 만들어 지며, logs에 메시지 전송내용이 쌓이게 된다.

728x90
'카프카 > Kakfa Topic, Producer, Consumer' 카테고리의 다른 글
| Key가 없는 메시지의 파티션 분배 전략 - 라운드 로빈과 스티키 파티셔닝 (0) | 2025.07.21 |
|---|---|
| 여러 개의 파티션을 가지는 메시지 (0) | 2025.07.21 |
| Key값을 가지는 메시지의 전송 (0) | 2025.07.18 |
| Producer의 객체 직렬화(Serializer) 전송의 이해 (0) | 2025.07.18 |
| Producer와 Consumer (0) | 2025.07.17 |