1.1 잘란도와 트위터의 카프카 도입 사례
1.1.1 유럽 최대 온라인 패션몰 잘란도의 도전 사례
- 잘란도는 회사 규모가 커지고 데이터에 대한 온갖 요구사항이 많아지자 이벤트 드리븐 스트림으로의 전환을 결정했다.
- 이벤트 드리븐에서의 통신 방법으로 API와 PostgreSQL을 사용하려 했지만 한계는 분명했다.
- 여러 네트워크를 이용하는 환경에서 모든 데이터 변경에 대한 올바른 전달 보장 문제
- 동일 데이터를 동시에 수정하며 정확히 순서를 보장해야 하는 문제
- 다양한 클라이언트들의 요구사항을 효율적으로 지원하기 어려운 문제
- 빠른 전송을 위한 클라이언트 또는 대량 배치 전송을 위한 클라이언트를 지원하게 어려운 문제
비동기 방식의 대표 스트리밍 플랫폼, 카프카 도입
- 빠른 데이터 수집이 가능한 높은 처리량
- 카프카로 처리되는 응답시간은 불과 한 자릿수 밀리초 단위
- 순서 보장
- 적어도 한 번 전송 방식
- 멱등성을 보장한 컨슈머와 함께 사용하면 메시지 누락 없는 재전송이 가능
- 아키텍처는 단순해지고 처리량 또한 높아진다.
- 자연스러운 백프레셔 핸들링
- 카프카 클라이언트는 pull 방식으로 동작하기에 자신의 속도로 데이터를 처리할 수 있다.
- 강력한 파티셔닝
- 논리적으로 여러 토픽을 분할
- 각 파티션을 다른 파티션과 관계 없이 처리 가능
- 그 외 여러 가지 기능
- 로그 컴팩션
- 메시지 지연 소비
- 프로듀서와 컨슈머의 완벽 분리로 병목을 정확히 파악 가능
1.1.2 SNS 절대 강자 트위터의 카프카 활용 사례
- 트위터는 팔로워들에게 사용자의 글을 즉시 전달하는 대규모 SNS이다.
- 데이터 스트리밍 워크로드를 구축하기 위해 이벤트 버스를 구축, 운영한다.
- 하지만 향후 카프카로 전환하게 된다.
카프카로 유턴한 트위터
- 비용 절감 효과
- 이벤트 버스 보다 카프카의 응답 속도가 더 빠르다.
- 카프카는 BPS(bits per seconds)와 상관없이 지연이 거의 발생하지 않는다.
- 카프카는 하나의 프로세스에서 스토리지와 요청을 모두 처리
- OS에 의존해 백그라운드로 fsync()를 처리하고 제로카피를 사용
- 이벤트 버스에 비해 많은 하드웨어가 필요하지 않기 때문
- 카프카 도입으로 60%~70% 리소스 절감
- 강력한 커뮤니티
- 카프카는 많은 기업에서 채택했으며 수많은 엔지니어들이 사용/운영 중이다.
세계 유수 기업이 선택하는 카프카
- 다음 고민이 있다면 카프카를 도입해볼만하다.
- 동기/비동기 데이터 전송에 대한 고민
- 실시간 데이터 처리에 대한 고민
- 현재 데이터 처리에 한계를 느끼는지
- 새로운 데이터 파이프라인이 복잡하다고 느끼는지
- 데이터 처리 비용 절감을 고려하는지