아파치 카프카, 핵심만 쏙쏙!
한 줄 요약: 마치 거대한 실시간 택배 시스템! 엄청나게 많은 데이터를 엄청나게 빠르게 여러 곳으로 보내고, 잠시 보관했다가 나중에 다시 꺼내 보거나, 실시간으로 바로바로 처리할 수 있게 해주는 똑똑한 시스템입니다.
카프카는 이런 일을 해요! (택배 시스템에 비유!)
카프카의 역할 | 택배 시스템 비유 | 설명 |
메시지 브로커 | 택배 회사의 물류 센터 | 한 곳에서 만든 물건(데이터)을 여러 곳(다른 시스템)으로 안전하고 빠르게 전달해 줍니다. (물건 보내는 사람 → 물류 센터 → 물건 받는 사람) |
데이터 저장소 | 택배 회사의 보관 창고 | 도착한 물건(데이터)을 잃어버리지 않고 잠시 보관해 둡니다. 나중에 필요할 때 다시 꺼내 볼 수 있어요. |
실시간 처리 기반 | 택배 분류 컨베이어 벨트 + 즉시 처리 시스템 | 물건(데이터)이 들어오자마자 바로 분류하고 처리할 수 있는 빠른 시스템입니다. (다른 똑똑한 시스템과 연결해서 실시간 분석 가능) |
카프카의 기본 구성 요소 (택배 시스템 부품들!)
구성 요소 | 택배 시스템 비유 | 역할 |
Producer | 물건 보내는 사람/회사 | 카프카에게 데이터를 보내는 역할 |
Consumer | 물건 받는 사람/회사 | 카프카로부터 데이터를 읽어 가는 역할 |
Broker | 택배 회사의 본사 + 서버 | 실제로 데이터를 저장하고 전달하는 핵심 역할을 하는 컴퓨터 (서버) |
Topic | 택배 상자의 종류별 분류 | 비슷한 종류의 메시지(데이터)들을 묶어 놓은 이름표 붙은 상자 (예: 주문 상자, 회원 상자) |
Partition | 택배 상자를 나눈 작은 칸 | 하나의 큰 상자(Topic)를 여러 개의 작은 칸으로 나누어 동시에 여러 사람이 처리할 수 있게 해서 속도를 높여줍니다. |
카프카 클러스터 상태 관리 (택배 시스템 관리 본부)
- Zookeeper (구버전): 카프카 시스템 전체가 잘 돌아가는지 감시하고 관리하는 역할 (최근 버전에서는 선택 사항)
카프카는 이렇게 쓰여요! (택배 시스템 활용 사례!)
온라인 쇼핑몰:
- 주문 발생! → 카프카로 주문 정보 발송!
- 결제 시스템, 재고 관리 시스템, 배송 시스템이 카프카에서 주문 정보를 실시간으로 받아 바로 처리! (주문 확인, 재고 감소, 배송 준비)
웹사이트/앱 기록 분석:
- 여러 대의 서버에서 발생하는 로그 데이터를 카프카로 실시간으로 모읍니다.
- 모아진 로그 데이터를 분석 툴(Elasticsearch, Splunk)로 보내서 문제점을 찾거나 사용자 행동을 분석합니다.
스마트 공장/농장:
- 수많은 센서에서 실시간으로 쏟아지는 온도, 습도, 위치 정보 등을 카프카로 빠르게 수집합니다.
- 수집된 데이터를 분석해서 이상 징후를 감지하거나 자동 제어 시스템에 활용합니다.
인공지능 추천 시스템:
- 사용자가 웹사이트나 앱에서 클릭, 구매, 검색하는 모든 행동 데이터를 카프카로 실시간으로 분석합니다.
- 분석 결과를 바탕으로 개인에게 딱 맞는 상품이나 콘텐츠를 실시간으로 추천해 줍니다.