아파치 카프카 구성요소 및 핵심기능 6가지

아파치 카프카 구성요소 및 핵심기능 6가지

아파치 카프카 구성요소 및 핵심 기능 6가지에 대해 설명합니다. 구성요소로는 주키퍼, 클러스터, 브로커, 컨슈머, 토픽, 파티션, 세그먼트, 레코드 등이 있습니다.

아래는 카프카 공식 사이트입니다.

https://www.confluent.io

카프카 옵션 설정이 궁금하신 분은 아래 링크를 참고바랍니다.

아파치 카프카 구성요소

  • 주키퍼(ZooKeeper) : 아파치 프로젝트 어플리케이션 이름. 카프카의 메타데이터 관리 및 브로커의 정상상태 점검을 담당합니다.
  • 카프카 또는 카프카 클러스터 : 여러 대의 브로커를 구성한 클러스터를 의미합니다.
  • 브로커 : 카프카 애플리케이션이 설치된 서버 또는 노드를 말합니다.
  • 프로듀서 : 카프카로 메시지를 보내는 역할을 하는 클라이언트입니다.
  • 컨슈머 : 카프카에서 베시지를 꺼내가는 역할을 하는 클라이언트입니다.
  • 토픽 : 카프카는 메시지 피드들을 토픽으로 구분하고, 각 토픽의 이름은 카프카 내에서 고유합니다.
  • 파티션 : 병령 처리 및 고성능을 얻기 위해 하나의 토픽을 여러 개로 나눈 것을 말합니다.
  • 세그먼트 : 프로듀서가 전송한 실제 메시지가 브로커의 로컬 디스크에 저장되는 파일을 말합니다.
  • 메시지 또는 레코드 : 프로듀서가 브로커로 전송하거나 컨슈머가 읽어가는 데이터 조각을 말합니다.

리플리케이션

  • replication-factor : 카프카 내 각 브로커에 동일 메세지를 몇 개 유지하겠다는 설정임. 3으로 설정하면 세 개의 브로커에 하나씩 존재함. 그래서 브로커가 종료되더라도 메세지는 그대로 유지하고 있습니다.
  • 테스트 or 개발 환경 : 1로 설정합니다.
  • 운영 환경(로그성 메시지로서 약간의 유실 허용) : 리플리케이션 팩터 수를 2로 설정합니다.
  • 운영 환경(유실 허용하지 않음) : 리플리케이션 팩터 수를 3으로 설정합니다.

파티션

  • 토픽 처리 성능을 높이기 위해 하나의 토픽에 대해 파티션을 여러 개 두어 병렬로 처리하게 만든 것입니다.
  • 분산 처리 가능합니다.
  • 파티션마다 컨슈머를 연결할 수 있습니다.
  • 초기 파티션 수는 늘릴 수 있지만 중간에 줄일 수는 없습니다.
  • 컨슈머의 LAG( = 프로듀서가 보낸 메시지 수(카프카에서 남아 있는 메시지 수) – 컨슈머가 가져간 메시지 수)를 통해 지연 여부를 확인할 수 있습니다.
  • 아래는 적절한 파티션 수 산정 툴입니다. 하지만 참고용으로만 활용합니다.

Sizing Calculator for Apache Kafka and Confluent Platform

세그먼트

  1. 프로듀서는 카프카의 sample01 토픽으로 메시지를 전송합니다.
  2. sample01 토픽은 파티션이 하나일 경우, 프로듀서로부터 받은 메시지를 파티션0의 세그먼트 로그 파일에 저장합니다.
  3. 브로커의 세그먼트 로그 파일에 저장된 메시지는 컨슈머가 읽어갈 수 있습니다.

카프카의 핵심 개념

  • 높은 처리량, 빠른 응답 속도, 안정성의 이점이 있습니다.

1. 분산 시스템

  • 확장이 용이하게 가능한 분산시스템을 구축을 지원합니다.

2. 페이지 캐시

  • 페이지 캐시는 직접 디스크에 읽고 쓰는 대신 물리 메모리 중 애플리케이션이 사용하지 일부 잔여 메모리를 활용합니다.
  • 디스크 I/O에 대한 접근이 줄어들어 성능을 높일 수 있습니다.

3. 배치 전송 처리

  • 데이타를 개별로 보내는 것보다 묶음으로 보내면 전체적으로 전송 속도 증가와 오버헤드 감소 효과가 있습니다.

4. 압축 전송

  • 전송 데이타 압축을 통해 전송 속도를 높일 수 있습니다.

5. 토픽, 파티션, 오프셋

  • 토픽은 병렬처리를 위해 여러 개의 파티션으로 전달될 수 있습니다.
  • 오프셋(offset) : 파티션의 메시지가 저장되는 위치입니다.

6. 고가용성 보장

  • 토픽 자체가 아닌 토픽의 파티션을 복제합니다.
  • 리더/팔로우 수로 지정합니다.
  • 리플리케이션 팩터 수 : 2 설정 시 (리더 1, 팔로워 1), 3 설정 시 (리더 1, 팔로워 2), 4 설정 시 (리더 1, 팔로워 3)
  • 리플리케이션 수 3을 추천합니다.

7. 주키퍼의 의존성

  • 살아 있는 노두 수가 과반수 이상 유지될 경우 지속적인 서비스가 가능한 구조라 반드시 홀수로 구성해야 합니다.
  • 지노드 znode : 카프카의 메타 정보가 주키퍼에 기록되며, 주키퍼는 이러한 지노드를 이용해 브로커의 노드 관리, 토픽 관리, 컨트롤러 관리 등 매우 중요한 역할을 하고 있습니다.
  • 아파치 카프카 구성요소 간 의존성 문제가 있어 주키퍼는 사라질 것입니다.

이상 아파치 카프카 구성요소에 대해 알아봤습니다.

좀 더 자세한 설명을 원하시는 분은 여기 링크로 ‘실전 카프카 개발부터 운영까지’ 책을 사서 보시길 추천드립니다.


참고 : 실전 카프카 개발부터 운영까지

실전 카프카 개발부터 운영까지:데이터플랫폼의 중추 아파치 카프카의 내부동작과 개발 운영 보안의 모든것, 책만 아파치 카프카의 모든 것 세트 : 카프카 데이터 플랫폼의 최강자+실전 카프카 개발부터 운영까지, 책만 (서점추천) 헤드 퍼스트 디자인 패턴 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 24단계 실습으로 정복하는 쿠버네티스 + 실전 카프카 개발부터 운영까지 (전2권), 위키북스 (서점추천) 데이터 파이프라인 핵심 가이드 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 몽고DB 완벽 가이드 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 클린 코드의 기술 + 실전 카프카 개발부터 운영까지 (전2권), 영진닷컴 (서점추천) 카프카 핵심 가이드 + 디지털 플랫폼 전략 수립을 위한 쿠버네티스 실전 활용서 (전2권), 제이펍 아파치 카프카 애플리케이션 프로그래밍 with 자바:카프카의 개념부터 스트림즈 커넥트 스프링 카프카까지, 비제이퍼블릭 카프카 핵심 가이드 개정증보판, 제이펍 실전 아파치 카프카:애플리케이션 개발부터 파이프라인 사물인터넷 데이터 허브 구축까지, 한빛미디어 카프카 데이터 플랫폼의 최강자:실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지, 책만 카프카 스트림즈와 ksqlDB 정복:실시간 데이터 처리, 에이콘출판 카프카 핵심가이드:실시간 데이터와 스트림 프로세싱, 제이펍

“이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”

Back to top