Engineering Note

[Kafka] 카프카, 이벤트기반 메시징 시스템 용어 정리 본문

Server

[Kafka] 카프카, 이벤트기반 메시징 시스템 용어 정리

Software Engineer Kim 2025. 8. 26. 18:43

Message Queue(메시지 큐)

- 분산환경 시스템에서 시스템 간의 데이터를 교환하기 위해 사용하는 기법

- 데이터의 생산자와 소비자간의 비동기적 통신이 가능하게 한 시스템

 

 

Message Queue(메시지 큐)의 한계

- Queue에 쌓인 데이터(메시지)를 한 명의 소비자가 읽는 구조.

- Pruducer(Publisher, 생산자)가 발행한 메시지를 큐에 저장하고 Consumer(소비자)가 사용하는 구조인데, 이렇게 한 명의 소비자가 사용한 후에는 다른 Consumer가 재사용할 수 없음. 이러한 Message Queue의 한계를 극복하기 위해 Kafka는 Pub/Sub 모델을 사용

 

 

Pub/Sub 모델

- Message Queue에서 제한된 메세지 재사용의 한계점을 보완해주는 모델

 

Pub/Sub 모델 장점

- Pub/Sub 모델은 메시지 생산자와 소비자 간의 결합을 느슨하게 하는데, 생산자와 소비자가 1:1로 메세지를 전달하지 않고 중앙 시스템을 통해 전달하게 한다.

- 메세지 발행자는 특정 Topic(주제)에 데이터를 발행하고, 구독자는 관심있는 주제에 대해서만 데이터를 수신한다.

 

Kafka

- 이벤트 기반 메시징 시스템(미들웨어)을 구축하기 위한 오픈소스 프레임워크

- 메세지는 큐에 저장되어 데이터 소비자가 필요할 때 사용할 수 있는데, Kafka는 메세지 큐의 기능을 강화하여 수많은 소비자가 동시에 데이터를 처리할 수 있게 설계 되어 많은 기업, 개발자가 사용.

- Kafka는 Pub/Sub 모델을 활용하여 다양한 데이터 소스와 소비자가 상호 작용할 수 있게 한다.

- 데이터를 Topic 별로 분리하고, 여러 파티션에 분산 저장하는데, 이를 통해 여러명의 소비자가 병렬로 데이터를 처리하게 함.

- 이러한 방식으로 Kafka는 실시간 스트리밍 애플리케이션에서 데이터 흐름을 효율적으로 관리한다.

 

이벤트 기반 비동기 아키텍처에서 용어 및 역할

Producer

- 이벤트(메시지)를 Kafka에 발행하는 역할의 공급자 (예: API 서버)

 

Broker

- Kafka의 핵심 컴포넌트로, Producer가 보낸 메시지를 안전하게 저장하고, Consumer가 각자 필요할 때 꺼내서 처리할 수 있게 하여, 이벤트 기반 비동기 처리를 지원하는 “중계(버퍼)” 역할 (Kafka 서버 자체)

 

Consumer

- Kafka에 쌓인 이벤트(메시지)를 구독/수신해서 실제로 처리(알림, 저장 등)하는 소비자(서비스/서버)



참고 자료 : https://www.elancer.co.kr/blog/detail/738

Comments