kafka란
실시간 스트리밍 데이터를 처리하기 위한 목적으로 설계된 오픈 소스 분산형 pub-sub 메시징 플랫폼
-> 실시간 데이터를 처리할 수 있을 만큼 빠른 Message Queue
Message Queue
메시지 큐는 프로그램(프로세스) 간의 데이터를 교환할 때 사용하는 기술
Broker, Zookeeper
broker는 실행된 Kafka application 서버를 뜻한다
- Topic내의 Partition들을 분산, 유지 및 관리
zookeeper는 이러한 분산 메시지 큐의 정보를 관리해 주는 역할을 한다
- kafka를 띄우기 위해서는 주키퍼가 반드시 실행되어야 한다
- 3대 이상의 broker로 클러스터 구성 필요
Topic, Partion, Segment
Topic은 Kafka 안에서 메시지가 저장되는 장소로, 논리적인 표현이다
하나의 Topic은 하나 이상의 Partition으로 구성되어진다
병렬처리(Throughput 향상)를 위해서 다수의 Partition 사용
Segment는 메시지(데이터)가 저장되는 실제 물리 File
Segment File이 지정된 크기보다 크거나 지정된 기간보다 오래되면 새 파일이 열리고 메시지는 새 파일에 추가된다