본문 바로가기
Kafka

[Apache Kafka] 카프카란 무엇인가?

by J_Remind 2024. 9. 18.

Kafka는 대규모 실시간 데이터 스트리밍을 처리하는 데 사용되는 분산 이벤트 스트리밍 플랫폼

분산 이벤트 스트리밍이란, 여러 대의 서버(노드)에 분산되어 저장된 이벤트(데이터)를 실시간으로 처리하는 방식

카프카 용어

클러스터(Cluster)

브로커들의 모임으로 확장성과 고가용성을 위해 여러 개의 Broker가 클러스터로 구성되어 있다.

브로커(Broker)

카프카가 설치되어 있는 서버 단위를 말하며 보통 3개 이상의 Broker로 구성하는 것을 권장

복제(Replication)

Kafka Replication은 Kafka에서 데이터의 고가용성을 보장하기 위한 방법으로 각 토픽의 파티션(Partition)을 복제를 통해 클러스터 내의 여러 브로커에 중복 저장하는 것이다.

토픽(Topic)

메시지를 구분하는 단위로 프로듀서로 부터 전송되고 컨슈머에서 가져가는 데이터로 토픽 이름으로 구분된다.

파티션(Partition)

메시지를 저장하는 기본 단위로, 각 토픽은 한 개 이상의 파티션으로 나뉘며 파티션은 메시지를 순서대로 저장하여 파티션 내에서 메시지의 순서가 보장됩니다

파티셔너(Partitioner)

파티셔너는 프로듀서가 메시지를 전송할 때, 어떤 파티션에 저장할지 결정하는 역할을 합니다. 기본적으로 파티션 키를 사용해 특정 파티션을 선택하거나, 키가 없는 경우 라운드 로빈 방식이나 해시 함수를 통해 파티션을 선택합니다.

프로듀서(Producer)

메시지를 발행하는 주체

컨슈머(Consumer)

메시지를 수신하는 주체로 특정 토픽을 구독하여 데이터를 전달 받는다.

오프셋(offset)

파티션 내에서 메시지의 위치를 나타내는 고유 식별자입니다. 컨슈머는 오프셋을 기반으로 데이터를 읽습니다.

컨슈머 랙(Consumer Lag)

프로듀서 오프셋과 컨슈머 오프셋 간의 차이로 주로 컨슈머의 상태를 보기 위해 사용된다. 클러스터의 상태를 모니터링할 때 중요한 지표로 사용된다. 파티션이 여러 개일 경우 각 파티션에 대해 랙이 계산될 수 있으며, records-lag-max는 모든 파티션 중에서 가장 큰 랙을 나타냅니다.

'Kafka' 카테고리의 다른 글

[Apache Kafka] Kafka Replication란?  (0) 2024.09.18