카프카 (Kafka)

I. 대용량 실시간 로그 처리, 카프카

가. 카프카의 개념

대용량 실시간 처리 위한 확장성과 고가용성을 가지는 publish-subscribe 구조의 오픈소스 분산 메시징 시스템

나. 카프카의 특징

비휘발성 메시지– 디스크 구조로 설계, 별도의 설정하지 않아도 데이터 영속성 보장
TCP 기반 프로토콜– TCP 기반의 프로토콜을 사용하여 프로토콜에 의한 오버헤드 감소

 

II. 카프카의 아키텍처 및 구성 요소

가. 카프카의 아키텍처

나. 카프카의 구성요소

구분구성요소설명
데이터레코드– Key, Value, Timestamp 구성
토픽– 레코드가 게시되는 카테고리나 피드
파티션– 토픽이 쪼개져 각 서버에 저장되는 단위
Core APIProducer API– 카프카 토픽에 스트림 레코드 게시
Consumer API– 토픽 구독 및 생성 레코드 스트림 처리
Streams API– 스트림 프로세서로 동작, 입력→출력 스트림으로 효율적 변환
Connector API– 재사용 가능한 프로듀서나 컨슈머를 만들고 실행

 

III. 카프카를 활용한 실시간 데이터 처리 시스템 구축 방안

  • 실시간 대량의 데이터를 카프카에 안전하게 보관 후, 스톰에서 즉시 처리, 메시지 내용 추출 후 MongoDB 볼트, HDFS 볼트 등 다른 볼트로 전송

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^