Sinbum's blog
  • 인셉션 개발자
    • History
    • Editorial Board
    • 세미나
      • MS_빅데이터_분석_교육
      • Databricks_Musinsa_사례분석
      • Databricks_AMOREPACIFIC_사례분석
    • 개발자 꿀팁
  • 리눅스
    • 리눅스 기초
      • 기본명령어
      • 프록시서버
      • 온프레미스
      • systemd
      • 우분투 앱
      • vi 사용법
    • 도커
      • MSA 아키텍처
      • 도커 설명
      • 도커 설치
      • 도커 가이드
        • 컨테이너 만들기
        • 컨테이너 보관
        • 컨테이너 사용
        • 컨테이너 관리
        • 컨테이너 볼륨
        • 컨테이너 통신
        • 도커 연습
  • 언어
    • 자바
      • 자바(JAVA)는 무엇인가?
        • JVM 메모리
      • 자바 설치 가이드
      • 자바 언어 활용
        • 변수
        • static
        • 상수
        • 연산자
        • 제어문
        • 배열
        • CLI-자바사용
        • 클래스
        • 메소드
        • 값에의한 호출
        • GUI 프레임
        • 생성자
        • 오버로딩
        • 상속
        • 상속생성자
        • 접근제한자 와 가비지 컬렉션
        • 추상클래스 와 인터페이스
        • 다중구현
        • 예외처리
        • 컬렉션 프레임워크
        • 쓰레드
        • 네트워크
        • 다중 접속 서버 구현
      • 간단한 채팅 앱 개발하기
    • 파이썬
      • 파이썬(Python)은 무엇인가?
      • 파이썬 설치 가이드
      • 파이썬 언어 활용
        • 변수
        • 입력,출력
        • 타입선언
        • 자료구조
        • 주석처리
        • 문자열
        • 리스트
        • 반복문
        • 연산자
        • 조건문
        • 정규표현식
          • re 모듈
          • 메타문자1
          • 메타문자2
          • 그루핑
          • 전방탐색
          • 문자열 바꾸기
          • Greedy 와 Non-Greedy
      • 마치며...
  • 형상관리,CI/CD
    • 깃허브
      • 깃허브 협업 모델
      • 깃허브 설치 와 ssl
      • 깃허브를 잘쓰는 팁 모음
  • BigData
    • BigData 개념
      • OLTP,OLAP
      • ELT,ETL
      • DW
      • ObjectStorage
      • LambdaArc
      • OGG
    • Kafka
      • 환경설정 및 소스코드 다운로드
      • 아파치 카프카는?
        • 카프카의 시작
        • 카프카 특성
        • 빅데이터 아키텍처
      • 카프카 기초 개념
    • BuildApplications
      • Airflow
      • Grafana
    • PowerBi
      • DAX
        • REMOVEFILTERS
        • DAX_문법
        • DAX_함수
    • Azure
      • SynapseAnalytics
  • IOT
    • 아두이노
      • 설치 및 기초
      • 센서의 종류
      • led 출력하기
      • 시리얼 통신
      • 무선 통신
  • About
    • SINBUM
    • INTEREST
    • PROJECTS
      • 업무 프로젝트
      • 개인 프로젝트
        • 티스토리API를 사용한 블로그 앱
        • 노션 API와 블로그 연동 자동화 하기
        • 로지텍 마우스 수리
    • CONTACT
Powered by GitBook
On this page
  • 카프카 기본 개념
  • 카프카 프로듀서
  • 카프카 컨슈머
  • 카프카 스트림즈
  • 카프카 커넥트
  1. BigData

Kafka


로고
개념도

카프카 기본 개념

  • 카프카 : 카프카 클러스터를 포함한 이벤트 스트림 프로세스 아키텍처.

  • 브로커 : 카프카 클러스터의 서버 중 하나. 데이터를 저장하고 전달.

  • 토픽 : 카프카 클러스터에서 데이터를 구분하는 단위. 토픽은 최소 1개 이상의 파티션을 가짐

  • 파티션 : 토픽에서 데이터를 논리적으로 구분하는 단위

  • 레코드 : 메시지를 담는 가장 작은 크기.

    • 오프셋 : 프로듀서가 보낸 데이터가 브로커에 저장되었을 시에 받는 고유 번호. 인덱스 번호.

    • 타임스탬프 : 레코드가 프로듀서에서 생성 되었을 때 시간.

    • 헤더 : 레코드의 키/값 저장영역.

    • 메시지 키: 데이터를 구분하는 값. 실제 db에서 사용되는 primary key 또는 json의 키 개념이 비슷하다.

    • 메시지 값: 밸류값.

카프카 프로듀서

  • 카프카 프로듀서 : 카프카 브로커로 데이터를 전달하는 역할을 하는 어플리케이션.

  • 파티셔너 : 메시지 키를 토대로 파티션을 지정하는 클래스. 직접 커스텀하여 로직 변경 가능.

  • 어큐뮤레이터 : 레코드 전송시 배치로 묶는 역할.

  • acks : 레코드를 카프카 클러스터로 전송시에 전달 신뢰성을 지정함.

  • min.insync.replicas : acks=all 일 경우 최소 적재 보장 파티션 개수.

  • enable.idempotence : 멱등성 프로듀서로 동작하기 위해 설정하는 옵션.

  • transactional.id : 트랜잭션 프로듀서로 동작하기 위해 설정하는 옵션.

카프카 컨슈머

  • 카프카 컨슈머 : 카프카 클러스터에 저장된 레코드를 받와서 처리하느 어플리케이션.

  • 컨슈머 그룹 : 동일한 역할을 하는 컨슈머들의 묶음.

  • 컨슈머 랙 : 파티션에서 가장 최근의 레코드 오프셋과 컨슈머 오프셋간의 차이. 또는 차이 시간을 말함.

  • 커밋 : 컨슈머가 레코드 처리가 완료되었을 경우 카프카 클러스터에 마지막으로 읽은 레코드의 오프셋 번호를 저장하는 작업.

  • 리밸런싱 : 컨슈머 그룹에서 컨슈머 개수의 변화 또는 파티션 개수의 변화로 인해서 할당이 변경되는 작업.

  • auto.offset.reset : 컨슈머 그룹이 없을 경우 처음 읽을 오프셋의 위치를 지정하는 옵션.

  • isolation.level : 트랜잭션이 완료된 레코드를 읽을 것인지 판단하는 옵션.

카프카 스트림즈

  • 카프카 스트림즈 : 상태/비상태 기반 스트림 데이터 처리를 수행하는 어플리케이션.

  • 태스크 : 스트림즈 어플리케이션 내부에서 생성되어서 로직을 수행하는 최소 단위.

  • 프로세서 : 데이터를 처리,가져오기,보내기

  • 스트림 : 프로세서로 부터 처리된 데이터를 다른 프로세스로 전달되는 레코드

  • 스트림즈DSL : 추상화 되어 스트림 프로세싱에 필요한 메서드들을 정의한 메서드들의 모음.

  • 프로세서API : 스트림즈 dsl에서 구현할 수 없는 로직을 구현할 때 사용하는 API.

  • KStream : 레코드의 흐름, 컨슈머의 poll()과 유사함.

  • kTable : 특정 파티션의 메시지 키를 기준으로 가장 최근의 레코드들의 묶음.

  • 코파티셔닝 : 동일한 파티션 개수, 동일한 파티셔닝 전략을 통해 레코드가 저장된 서로 다른 2개의 토픽.

카프카 커넥트

  • 카프카 커넥트 : 카프카 기반 데이터 파이프라인을 반복적으로 생성할 때 사용하는 어플리케이션.

  • 소스 커넥터 : 특정 파일 또는 소스 어플리케이션으로부터 토픽으로 데이터를 보내는 프로듀서.

  • 싱크 커넥터 : 토픽에서 특정 파일 또는 소스 어플리케이션으로 데이터를 보내는 컨슈머.

  • 오픈소스 커넥터 : 소스/싱크 커넥터를 사용할 수 있도록 jar형태로 배포하는 커넥터.

  • 태스크 : 커넥터에서 데이터를 처리하는 최소 로직 단위.

  • 단일 모드: 디버깅, 테스트용으로 적합한 1프로세스 단위 커넥트

  • 분산 모드: 상용환경 운영에 적합한 멀티 프로세스 단위 커넥트

PreviousOGGNext환경설정 및 소스코드 다운로드

Last updated 2 years ago

아파치카프카
카프카개념도