[Kafka] Kafka란 무엇인가

Joney의 SW 공부 블로그·2023년 8월 6일
0

Kafka study

목록 보기
1/4

kafka란 무엇인가

  • 오픈소스 메시징 서버
  • 일반적으로 메시징 서버는 아래와 같은 구성으로 이루어짐
    • 데이터 단위를 보내는 Publisher(혹은 Producer)
    • 데이터를 저장하는 저장소(topic)
    • 데이터를 가져가는 Subscriber(혹은 Consumer)
  • 중앙에 메시징 서버를 두고 메시지를 Publish/Subscribe하는 Pub/Sub 모델의 통신 사용

Kafka의 특징

교환기가 없는 메시징 시스템

  • Producer가 보낸 데이터를 Consumer가 모니터링 하는 queue에 저장하기 위한 교환기를 사용하지 않음
  • 교환기의 큐 관리, 데이터 정합, 전달 결과 관리 등의 복잡한 프로세스로 인한 부하 집중을 없앨 수 있음
  • Kafka는 메시지 교한 전달의 신뢰성 관리를 Producer와 Consumer에게 맡기고, 교환기의 기능을 Consumer가 만들 수 있게 함

프로듀서와 컨슈머의 분리

  • polling 시스템으로는 데이터가 많아지면 수집과 처리시간이 늦어지는 문제 발생
  • Producer와 Consumer를 완벽하게 분리하는 Pub/Sub 구조 채용

멀티 프로듀서, 멀티 컨슈머

  • 하나의 topic의 여러 Producer와 Consumer가 접근 가능
  • 하나의 Producer는 여러 topic에 메시지를 보낼 수 있음
  • 하나의 Consumer는 여러 topic에서 메시지를 가져갈 수 있음

디스크에 메시지 저장

  • 다른 메시징 시스템과는 다르게 디스크에 메시지를 저장하고 유지
    • 일반적인 메시징 시스템에서는 Consumer가 메시지를 읽어가면 queue에서 삭제
    • Kafka는 설정한 보간 주기 동안 디스크에 메시지 저장
  • Consumer의 처리가 늦어지더라도 디스크에 메시지가 저장되어 있기 때문에 손실 없이 가져갈 수 있음

확장성

  • Kafka는 확장이 용이하도록 설계되어 있음
  • 확장 작업은 카프카 서비스 중단 없이 가능

Kafka 용어 정리

  • 브로커(broker) : Kafka가 설치되어 있는 서버 또는 노드
  • 토픽(topic) : Kafka로 들어오는 메시지를 구분하기 위한 네임
  • 파티션(partition) : 병렬처리가 가능하도록 topic을 나눌 수 있고, 많은 양의 메시지 처리를 위해 파티션 수를 조절



[reference]

카프카, 데이터 플랫폼의 최강자 - 실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지

profile
SW 지식 노트 블로그

1개의 댓글

comment-user-thumbnail
2023년 8월 6일

정보에 감사드립니다.

답글 달기