리눅스/kafka

kafka topic

정지홍 2024. 9. 3. 21:49


 

토픽 topic

- 메시지를 저장하는 영역

- 프로듀서에서 메시지(연속적인)를 보내면 여기에 저장함. ( db의 테이블로 비유 가능)

- 토픽은 여러개의 파티션으로 구성됨

- 나중에 컨슈머가  이를 가져가서 처리....

- 키(offset)와 벨류 기반의 메시지 구조이다.

- 즉, 파티션으로 구성된 일련의 로그 파일이다. 이 파티션 덕분에 병렬성,가용성을 올려줌.

 


토픽 생성시 인자들....

  • --bootstrap-server
    • 이 인자 뒤에 토픽을 생성할 주소 및 포트 입력.... ex) localhost:9092
  • --create
    • --topic옵션을 추가로 하면 해당명으로 된 topic 생성 ex) --create --topic topicExName
    • --partitions옵션은 topic의 파티션 수.(클수록 병렬 처리 성능 향상 및 데이터를 분산 및 장애 조치 성능 향상,고가용성)
    • --replication-factor는 복제본 수 
  • --list 브로커에 있는 topic의 리스트를 보여줌
  • --describe
    • --topic옵션은 해당 토픽명의 상세 정보 표시 

--list옵션으로 localhost:9092브로커에게 생성한 토픽들을 출력하라고 함.
파티션이 3개인 토픽 생성 (디폴트는 1개)
상세정보 출력하기

 


 

 

kafka-topics --bootstrap-server localhost:9092 --create --topic test_topic_3 --partitions 3 --replication-factor 2

==> 이렇게 입력하면 현재 상황에서는 에러가 난다...

첫번째 에러를 보면 replication은 2보다 커야하며 현재 가용가능한 브로커 수는 1개라고 나온다....

이유는 내가 처음에 설정할때 브로커수를 설정해서 그런것임....

해결하려면 kafka클러스터에 추가로 브로커를 설치하고 갯수를 늘려준다....


디폴트 파티션수를 수정하려면???.....

저기 num.partitions를 수정한다... 연구실 pc기준 /home/sskim/confluent/etc/kafka에 위치... server.properties파일이다.

 


로그 디렉토리를 보면 파티션 수에 따라 파일이 생성됨. 03-0,03-1,03-2는 파티션 번호이다. 즉, 저장 단위는 파티션 단위다.

 


디렉토리 들어오면 로그에 대한 파일들이 존재.

  • 000000000.log은 로그에 대한 메시지이다. 파일 이름은 첫번째 메시지의 오프셋으로 시작하는 위치를 나타냄. 00이니 아직 메시지 기록 안됨....
  • 000000000.index는오프셋에 대한 인덱스를 가지고 있다.
  • timeindex는 타임스탬프에 따른 인덱스를 저장한다.
  • partition.metadata는 파티션에 대한 메타데이터 정보를 저장...
  •  

topic 삭제하기

일정 시간이 지나면 삭제가 된다.
삭제 됨