아파치 카프카 애플리케이션 프로그래밍 with 자바




왜 읽었나?

카프카 하면 이방인의 작가가 떠올랐던 적이 있다. 시나브로 프란츠는 잊히고, 아파치 카프카가 자리를 차지했다. 아직 실전에서 만나본 적은 없다. 조만간 프로젝트에서 만날 수 있을 것 같다는 이야기를 들었다. 까막눈 되지 않으려면, 미리 용어라도 접해놔야지.



카프카의 탄생 (feat. EAI)

링크드인이 커지면서 백엔드가 복잡해졌다. 얽힌 타래를 중앙집중화로 해결했는데, 중앙집중화를 구현한 것이 카프카다. EAI(Enterprise Application Integration)와 비슷하다. 다른 점은 EAI는 시스템 간의 다양한 프로토콜을 수용하는 데 반해, 카프카는 시스템 간 데이터 흐름을 프로듀서와 컨슈머 개념으로 정의했다. 



카프카는 시스템의 어느 영역에서 유용할까?

빅데이터는 스키마 기반의 정형 데이터와 비정형 데이터(그림, 영상, 음성)다. 

데이터 레이크란 수집 가능한 모든 데이터를 모아 놓은 곳이다. 여기에서 가공되지 않은 데이터를 가지고 데이터 분석을 통해 인사이트를 얻을 수 있다. 

데이터 파이프라인이란 수많은 빅데이터를 모으는 방법이다. 즉, 데이터를 추출, 변경, 적재하는 과정을 묶은 것이다. 

보유 시스템이 늘어나고, 처리하는 데이터양이 증가하면서 데이터 파이프라인이 중요해졌다. 데이터를 생산하고, 소비하는 시스템은 늘어가는데, 데이터 파이프라인에서 병목이 발생하면 안 되기 때문이다. 카프카는 데이터 파이프라인에 특화된 장점을 가지고 있다. 

  • 높은 처리량: 배치 전송, 병렬 처리
  • 확장성: 스케일 인/아웃
  • 영속성: 파일과 메모리 활용
  • 고가용성: 데이터 복제



주요 용어

  • 주키퍼
  • 카프카 클러스터
    • 브로커, 토픽, 파티션
  • 프로듀서
  • 컨슈머 그룹
    • 컨슈머
  • 커넥트
    • 소스 커넥트(프로듀서 역할), 싱크 커넥터(컨슈머 역할)
  • 스트림즈
    • 태스크
  • 미러메이커2



마인드맵



댓글 쓰기

0 댓글