카프카/Kakfa Topic, Producer, Consumer

Topic과 Partition, 카프카 병렬 분산 처리

webmaster 2025. 7. 16. 22:41
728x90

Topic

Topic

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

Topic의 특징

Topic 특징

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

Topic과 Partition

Topic과 파티션

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

Topic과 Partition, Offset

Topic과 Partition, Offset

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

Topic과 파티션의 병렬 분산 처리

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개를 가지는 토픽 생성과 토픽 상세 보기

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

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

5) Topic 삭제

참고

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

kafka/etc/kafka/server.properties

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

 

728x90