Kafka / Zookeeper

epiphany·2023년 3월 22일
0

Kafka

발행-구독(Publish-Subscribe)모델을 기반으로 동작

Kafka의 특징 및 기존 MQ와의 차이점

  1. 대용량의 실시간 로그 처리 - TPS가 매우 우수
    분산 시스템을 기본으로 설계되었기 때문에 분산 및 복제 구성이 쉬움

    TPS란?

  2. TCP 기반의 프로토콜을 사용하여 프로토콜에 의한 오버헤드 감소
    기존 MQ는 다수의 메세지 전송시 각 메세지를 개별로 전송해야함
    -> Kafka는 다수의 메세지를 batch형태로 broker에서 한번에 전달 -> TCP/IP 라운드 트립 횟수 줄일 수 있음

    batch형태란
    TCP/IP라운드 트립이란
    기존 MQ의 메세지 전송 방식 궁금함

  3. 메세지를 파일 시스템에 저장
    기존 MQ는 메모리에 저장
    파일 시스템에 저장시 좋은 점

  • 데이터의 영속성 보장
  • 메세지를 많이 쌓아두어도 성능이 크게 감소하지 않음 -> 주기적인 batch작업에 사용할 데이터를 쌓아두는 용도로 사용 가능
  • 처리된 메세지를 삭제하지 않고 파일 시스템에 그래도 두었다가 설정된 수명이 지난 후 삭제 -> 메세지 처리 도중 문제 발생/처리 로직 변경 시 consumer가 메세지를 처음부터 다시 처리할 수 있음

    메모리 저장과 파일 시스템 저장의 차이
    데이터 영속성 보장이 필요한 이유

  1. 메세지 Pull방식
    기존 MQ는 Push방식 -> consumer는 자신의 처리 능력만큼 메세지를 broker로부터 가져오기 때문에 최적의 성능을 낼 수 있음
    메세지를 쌓아두었다가 주기적으로 처리하는 batch consumer의 구현이 가능

    batch consumer는 무엇인가

Zookeeper

분산된 어플리케이션을 분산 조율, 조정하는 서비스
-> 카프카의 분산 작업은 zookeeper을 통해 이뤄지는 것이라고 해야하는가?애찯ㄱ

참고

0개의 댓글