실전 카프카 개발부터 운영까지 - 1.카프카 개요 (2)

서영민·2022년 8월 15일
0
post-thumbnail

카프카 개요

카프카의 주요 특징

높은 처리량과 낮은 지연시간

  • 카프카는 매우 높은 처리량과 낮은 지연시간을 자랑한다
  • 위 표에서 볼 수있듯이 카프카가 처리량이 제일 높고, Rabbit MQ가 응답속도가 제일 빠르다
  • 처리량과 응답속도를 같이 비교하였을 때 카프카가 독보적으로 성능이 좋다

높은 확장성

  • 카프카는 확장 가능하도록 초기부터 설계되었다
  • 손쉽게 확장 가능하도록 설계되었다

고가용성

  • 클러스터 내 리플리케이션 기능 추가를 통해 카프카 클러스터의 고가용성 확보
  • 고가용성을 갖추면서도 지연 없는 빠른 메세지 처리 기능 유지

내구성

  • 프로듀서는 카프카로 메세지 전송시 acks 라는 옵션을 조정하여 메세지의 내구성을 강화할 수 있다.
  • 강력한 메세지의 내구성을 원한다면 옵션을 acks=all로 사용 할 수 있다.
  • 프로듀서에 의해 카프카로 전송된 메세지는 모두 안전한 저장소카프카의 로컬 디스크에 저장된다.
  • 전통적인 메시징 시스템은 메세지를 가져감과 동시에 저장소에서 메세지가 삭제된다.
  • 카프카는 컨슈머가 메세지를 가져가더라도, 메세지는 삭제되지 않고 지정된 설정 시간 또는 로그의 크기만큼 로컬 디스크에 보관된다.
  • 코드의 버그나 장애가 발생하더라도 과거의 메세지들을 불러와 재처리 할 수 있다.
  • 메세지들은 브로커 한 대에만 저장되는 것이 아니라 두 대 또는 세 대의 브로커에 저장된다.
  • 브로커 중 한 대가 종료되더라도 다른 브로커의 로컬디스크에 저장된 내용을 바탕으로 복구할 수 있다.

개발 편의성

  • 메세지를 전송하는 역할을 하는 프로듀서
  • 메세지를 가져오는 역할을 하는 컨슈머
  • 프로듀서와 컨슈머가 완벽하게 분리되어 동작하여 영향을 미치지 않는다.
  • 카프카 커넥트
    프로듀서와 컨슈머를 따로 개발하지 않고도 카프카와 연동해
    손쉽게 소스와 싱크로 데이터를 보내고 받을 수 있는 별도의 애플리케이션
    • 엘라스틱서치, HDFS 등 다양한 소스와 싱크를 제공하여 개발 편의성을 높일 수 있다.
    • 클러스터를 구성해 고가용성을 확보하는 방식으로 카프카 커넥트를 운영한다면
      효율적인 장애 대응과 서비스 품질 개선이 가능하다
  • 스키마 레지스트리
    카프카를 사용하는 많은 개발자가 데이터 활용보다 데이터 파싱하는데 많은 시간을 소모하는 비효율적인 현실을 보완하고자
    스키마를 정의해서 사용할 수 있도록 개발된 어플리케이션

운영 및 관리 편의성

  • 카프카는 중앙 메인 데이터 파이프라인 역할을 담당
profile
우렁총각

0개의 댓글