티스토리 뷰

Kafka

[Kafka] 카프카 개요

Frankle 2022. 3. 21. 18:09
이 글의 정보는 을 바탕으로 작성되었습니다.

카프카 개요

장점

  • 비동기 방식
  • 높은 처리량
    • HTTP 기반이여도 카프카로 이벤트가 처리되는 응답시간은 ms 단위
  • 순서 보장
  • 적어도 한 번 전송 방식
    • 멱등성으로 데이터 변화 없이 아키텍처를 단순하게 하고 처리량을 높인다.
  • 자연스러운 백프레셔 핸들링
  • 강력한 파티셔닝
    • 카프카의 파티셔닝은 논리적으로 토픽을 여러 개로 나눌 수 있다.
    • 각 파티션들을 다른 파티션들과 관계없이 처리가 가능하므로 효과적인 수평 확장이 가능하다.특징카프카는 다른 MQ 시스템들보다 성능이 월등하다.
      전통적인 래빗MQ와 비교했을 때, 응답 속도는 래빗MQ가 가장 빠르지만, 처리량과 응답 속도를 같이 비교하면 카프카가 독보적인 모습을 보인다.
    • 높은 처리량과 낮은 지연시간

높은 확장성

카프카를 최초 개발한 링크드인에선 액티브MQ를 사용했었는데, 비즈니스가 커가면서 어플리케이션을 확장해야 했지만, 액티브MQ는 확장하기가 어려웠고
이 과정을 디딘 링크드인은 카프카를 만들 때 확장 가능하도록 초기 설계하므로 높은 확장성을 갖게 되었다.

고가용성

클러스터 내 리플리케이션 기능으로 카프카 클러스터의 고가용성을 확보한다.

내구성

프로듀서의 acks 옵션으로 메시지의 내구성을 강화할 수 있다.
acks=all을 옵션으로 한다면 카프카로 전송되는 모든 메시지를 카프카 로컬 디스크에 저장할 수 있다.
이를 통해 장애가 발생해도 과거의 메시지들 복구가 가능하며, 메시지들은 하나의 브로커가 아닌 여러 대의 브로커에 저장되므로,
브로커 한 대가 불가피하게 종료되더라도 다른 브로커의 로컬 디스크에 저장된 내용을 바탕으로 복구가 가능하다.

개발 편의성

카프카 내의 프로듀서,컨슈머 각 기능들이 완벽히 분리되있어서 서로 영향을 주고 받지 않는다.
각자 필요의 기능만 개발할 수 있는 환경을 갖췄다.

카프카는 카프카 커넥트스키마 레지스트리를 제공하는데 스키마 레지스트리는 스키마를 정의해서 사용할 수 있도록 개발된 어플리케이션이다.
카프카 커넥트는 엘라스틱서치, HDFS 등 다양한 소스와 싱크를 제공한다.

'Kafka' 카테고리의 다른 글

[Kafka] 카프카 기본 개념과 구조  (0) 2022.03.21
댓글
링크
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday