Kafka

개요

링크드인은 초기에 ActiveMQ를 사용했으나 성능이 낮고, 큰 데이터를 처리할 수 없어서 원본을 줄이고 포맷도 변경하는 한계가 있었다고(p103, <카프카, 데이터 플랫폼의 최강자>, 2021) 처리량에 중점을 두고 카프카를 설계하기 시작.

특징

카프카는 기존 MQ에 비해 멀티 프로듀서, 멀티 컨슈머. 토픽으로 구분해 프로듀서가 메시지를 전달하고, 컨슈머가 구독하는데 메시지를 보관하고 디스크에 저장도 가능. 따라서 하나의 메시지를 여러 컨슈머가 다른 용도로 사용할 수 있도록 시스템 구성 가능. 또한 확장성이 높고 고성능.

동작 예시

링크드인 사용자가 프로필을 업데이트 하면 정보가 카프카로 전달된다. 실시간 스트림으로 처리하여 데이터웨어하우스에 저장된 회사 정보, 위치, 기타 속성들을 변경한다. 데이터의 변경 사항을 모니터링 하고 있던 검색 인덱스, 소셜 그래프, 추천 시스템 등으로 이동해 처리된다. 이 모든 작업은 불과 몇 밀리초 단위로 처리된다. (p39) 새 글 등록시 검색 연동의 과정을 더 이상 직접 연동으로 하기 보다 카프카로 스트리밍 하면 매우 이상적으로 보인다. 카프카는 스트리밍 처리를 하기 위한 주요 데이터를 모으는 곳으로 많이 사용 (p337)

장단점

  • 카프카는 JVM 플랫폼에 주키퍼 의존성이 있다. 분산 코디네이터를 알고 있어야 해서 운영 난이도도 높다. (p371)

  • 클라우드는 운영이 필요 없고 GCP Pub/Sub, AWS Kinesis 제공. 구글은 다른 서버에서도 사용가능하며 토픽 단위인 카프카와 거의 동일. 하지만 메시지 처리량이 부족하고, 느리고 비싸다. (p376) 운영 편의 외 다른 모든 부분이 손해. Confluent Cloud에서 GCP 마켓에 별도로 카프카를 제공하고 있는데 검토 필요.

Books

카프카, 데이터 플랫폼의 최강자 2018

★★★★☆
설명이 상세하고 풍부한 경험에서 우러나온 꼼꼼한 설명이 인상적이다. 여타 다른 책들처럼 매뉴얼 형식의 기능이나 옵션 소개에 그치지 않은 점은 매우 만족스럽다.

Last Modified: 2021/11/06 01:35:47

is a collection of Papers I have written.
© 2000 - Sang-Kil Park Except where otherwise noted, content on this site is licensed under a CC BY 4.0.
This site design was brought from Distill.