daco 2023. 5. 7. 15:13

참고 블로그

 

카프카가 무엇이고, 왜 사용하는 것 일까?

메시지 큐와 MOM 출처: https://www.cloudamqp.com/blog/what-is-message-queuing.html 카프카를 이해하기 위해서는 메시지 큐와 MOM을 먼저 알아야한다. 메시지 큐는 분산화된 환경에서 발신자와 수신자 사이에서

hudi.blog

 

Kafka란?

높은 확장성과 내결함성, 대용량 데이터 처리, 실시간 데이터 처리에 특화되어 있는 오픈소스 분산 시스템입니다.

Kafka는 이해하기 쉬운 API를 제공하고, 스케일 아웃 아키텍쳐이며, 디스크로 데이터를 영속화합니다.

 

Kafka의 필요성

※ Kafka 도입 전

 

※ Kafka 도입 후

 

위와 같이 Kafka를 사용하여 데이터 흐름을 중앙화하면 복잡도가 확연하게 낮아집니다.

 

Kafka 아키텍처

 

1. Kafka Cluster

여러 대의 브로커 서버들과 주키퍼로 구성되어있습니다.

 

2. Broker

데이터를 수신하고 전송하는 역할을 합니다.

토픽별로 메시지를 관리합니다.

즉, 브로커 내에 여러개의 토픽이 있을 수 있습니다.

 

3. Topic

메시지의 고유 이름이라고 할 수 있습니다.

토픽 별로 메시지가 들어옵니다.

프로듀서와 컨슈머는 특정 토픽을 통해 메시지를 서로 주고 받을 수 있습니다.

 

4. Partition

토픽 내의 메시지는 파티션 단위로 저장됩니다.

 

5. Zookeeper

브로커들을 하나의 클러스터로 관리하는 역할을 합니다.

카프카에서 필요한 메타데이터도 주키퍼에서 관리합니다.

 

6. Producer

브로커에 메시지를 전송하는 역할을 합니다.

 

7. Consumer

브로커들로부터 메시지를 가져와서 처리하는 역할을 합니다.