본문 바로가기
Big Data/Apache Kafka

Apache Kafka 란?

by seaweed_one 2022. 12. 6.
728x90

Apache Kafka

카프카란 무엇일까요?

카프카는 대용량 실시간 스트리밍 데이터 처리를 위해 사용하는 메시징 시스템이에요.

Pub-Sub모델 구조를 이용하고 있습니다.

 

Pub-Sub 모델이란 Publish/Subscribe( 발행/구독 )의 줄임말로 메시지 기반의 미들웨어 시스템입니다.

publisher 는 어떤 subscriber 가 있는지 모르는 상태에서 topic 을 통해 메시지를 카테고리화 하여 전송합니다.

반대로 subscriber 는 publisher 에 대한 정보 없이 자신의 Interest 에 맞는 메시지만을 전송받습니다.

그럼 카프카는 어떤 영역에서 활용될 수 있을까요?

아래에서 알아보겠습니다.

 

Kafka  활용 사례

  • 증권 거래소, 은행, 보험 등에서 실시간으로 결제 및 금융 거래를 처리
  • 물류 및 자동차 산업과 같은 자동차, 트럭, 함대 및 선적을 실시간으로 추적하고 모니터링
  • 공장 및 풍력 단지와 같은 IoT 장치 또는 기타 장비에서 센서 데이터를 지속적으로 캡처하고 분석
  • 소매, 호텔 및 여행 산업, 모바일 애플리케이션과 같은 고객 상호 작용 및 주문을 수집하고 즉시 대응
  • 병원 치료 중인 환자를 모니터링하고 상태 변화를 예측
  • 회사의 여러 부서에서 생성된 데이터를 연결, 저장 및 사용 가능하게 함
  • 데이터 플랫폼, 이벤트 기반 아키텍처 및 마이크로 서비스의 기반 역할

 

Kafka 의 구성 요소

Event 

이벤트는 kafka 에서 producer consumer 가 데이터를 주고받는 단위입니다.

Topic 

이벤트가 쓰이는 곳으로 주제에 따라 여러 토픽 생성이 가능합니다.

하나의 토픽은 하나 이상의 파티션으로 이루어져 있습니다.

Broker 

토픽은 여러 브로커에 분산 저장되며 분산된 토픽을 partition 이라고 합니다.

Partition

토픽 내에서 메세지를 분산 저장하는 단위로 토픽 안에 파티션을 나눠 그 수대로 데이터 분산처리를 진행하게 됩니다.

파티션은 컨슈머 그룹 단위로 할당하며 파티션 한 칸은 log라고 하고 log는 key/value/timestamp 로 구성되어 있습니다.

동일한 키를 가진 이벤트는 동일한 파티션에 기록됩니다. 아래의 그림에서 두  Producer 는 적절한 경우에 동일한 파티션에 이벤트를 기록할 수 있습니다. 

Kafka는 지정된 주제 파티션의 소비자가 이벤트를 작성된 순서와 정확히 동일한 순서로 읽을 수 있을 것을 보장합니다.

4개의 파티션에 서로 다른 두개의 Producer Client 가 파티션에 서로 독립적인 이벤트를 작성합니다.

Producer

하나의 토픽을 대상으로 이벤트를 게시 즉 데이터를 입력합니다.

Consumer 

이러한 토픽을 구독하고 이로부터 얻어낸 이벤트를 처리합니다.

OffSet

데이터는 한 칸의 로그에 순차적으로 append 되는데 이 상대적 위치를 오프셋이라고 합니다.

배열에서의 인덱스의 개념으로 이해하시면 좋을 것 같습니다.

Replication

Topic --replication-factor 생성 시 옵션 부여로 복제본 생성 가능하며 Zookeeper가  leader가 되는  Partition을 정하고, Partition 을 각 broker마다 복제합니다.

메시지 생산 소비 작업은 모두  leader broker에서 수행합니다.

나머지의 follower 들은 leader 를 복제하기만 합니다.

옵션에서 지정한 replica 의 개수만큼 파티션이 각 서버들에게 복제되며 고가용성을 위한 것으로 leader 가 죽으면 follower 중 하나가 leader 가 되어야 하기 때문에 leader 와 싱크를 맞추고 있는 것입니다.

 

이렇게 Kafka란 무엇인지 카프카의 구성 요소에는 어떤 것들이 있는지 알아봤는데요.

다음에는 카프카의 동작 원리에 대해 알아보겠습니다.

 

참고자료 

https://kafka.apache.org/documentation/

728x90

'Big Data > Apache Kafka' 카테고리의 다른 글

Kafka 의 동작 원리  (0) 2022.12.06