Programming/Kafka

[kafka] 기본 용어 정리

bisi 2020. 4. 11. 22:26

 

카프카 용어 정리

 

 

카프카(kafka)

아파치 프로젝트 애플리케이션 이름, 클러스터 구성이 가능하며 카프카 클러스터라고 부른다. 카프카 클러스터는 브로커, 주키퍼, 토픽, 파티션, 리더, 팔로워로 이루어져 있다. 

 

주키퍼(Zookeeper)

주키퍼는 분산 코디네이션 시스템이다. 카프카 브로커를 하나의 클러스터로 코티네이팅 하는 역할을 하며 나중에 이야기할 카프카 클러스터의리더(Leader)를 발탁하는 방식도 주키퍼가 제공하는 기능이다.

 

브로커(Broker)

카프카 애플리케이션이 설치되어 있는 서버 또는 노드

 

토픽(Topic)

프로듀서와 컨슈머들이 카프카로 보낸 자신들의 메시지를 구분하기 위한 네임으로 사용한다. 토픽은 카프카 클러스터에서 여러개 만들 수 있으며 하나의 토픽은 1개 이상의 (Parition)으로 구성되어 있다. 많은 수의 프로듀서 컨슈머들이 동일한 카프카를 이용하게 된다면, 메시지들이 서로 뒤섞여 있을때, 토픽으로 구분하여 원하는 메시지 얻을 수 있다.

 

파티션(Partition)

각 토픽 당 데이터를 분산 처리하는 단위이다. 병렬처리가 가능하도록 토픽을 나눌 수 있고, 많은양의 메세시 처리를 위해 파티션 수를 늘려줄 수 있다. 카프카 옵션에서 지정하 replica의 수만큼 파티션이 각 서버들에게 복제된다. 파티션들은 운영 도중 그 수를 늘릴 수 있지만 절대 줄일 수 없다. 

 

리더,팔로워(Leader, Follower)

카프카에서는 각 파티션당 복제된 파티션 중에서 하나의 리더가 선출된다. 이 리더는 모든 읽기, 쓰기 연상르 담당하게된다. 리더를 제외한 나머지는 팔로워가 되고 이 팔로워들은 단순히 리더의 데이터를 복사하는 역할만 하게된다.

 

프로듀서(Producer)

메시지를 생산하여 브로커의 토픽 이름으로 보내는 서버 또는 애플리케이션등을 말한다.

 

컨슈머(Consumer)

브로커의 토픽 이름으로 저장된 메시지를 가져가는 서버 또는 애플리케이션을 말한다. 컨슈머의 집합을 구성하는 단위는 컨슈머그룹이라고 부르며, 카프카에서는 컨슈머 그룹으로서 데이터를 처리하며 컨슈머 그룹안의 컨슈머 수만큼 파티션의 데이터를 분산 처리하게 된다. 

 

 

 

참고 사이트 : https://engkimbs.tistory.com/691

참고 문헌 : 카프카, 데이터 플랫폼의 최강자 실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지

'Programming > Kafka' 카테고리의 다른 글

[kafka] 카프카 주키퍼  (0) 2020.04.12
[kafka] 카프카 특징  (0) 2020.04.10
[kafka] 카프카의 동작 방식과 원리  (0) 2020.04.09