본문 바로가기

파이프라인

카프카 기본 개념 정리

이 글은 데브원영님께서 유튜브에 올려주신 카프카 강의를 정리한 내용입니다.

url: https://www.youtube.com/playlist?list=PL3Re5Ri5rZmkY46j6WcJXQYRlDRZSUQ1j 

 

📝강의 - 아파치 카프카

빅데이터에서 가장 많이 쓰이는 아파치 카프카에 대한 강의입니다. [아파치 카프카 애플리케이션 프로그래밍 with 자바] 책 구매하러가기 👉http://www.yes24.com/Product/Goods/99122569

www.youtube.com

소개

링크드인에서 개발한 오픈소스로 고가용성과 높은 처리량을 지원

구조와 개념

  • 구성소개
    • 프로듀서: 데이터를 카프카로 입력하는 역할
    • 컨슈머: 카프카에서 데이터를 가져가는 역할
    • 토픽
      • 데이터가 저장되는 공간(DB의 Table과 유사한 개념)
      • 여러개 생성이 가능하고, 네이밍을 지정할 수 있음
      • 여러개의 파티션으로 구성
        • 추가된 파티션은 삭제 불가
  • 동작 방식
    • 프로듀서가 데이터를 카프카에 입력
    • 데이터는 특정 토픽의 특정 파티션에 순서대로 저장
      • 데이터가 저장되면 offset 번호가 지정. 새로운 데이터는 다음 offset 번호로 증가되어 저장
      • 파티션이 여러개인 경우 옵션에 따라 다르게 저장
        • 파티션 키를 null로 지정: 라운드 로빈으로 파티션에 나눠서 저장
        • 파티션 키를 null이 아닌 값으로 지정: 해쉬값으로 변환된 특정 파티션에 저장. 동일한 값을 지정하면 동일 파티션에 저장
    • 컨슈머는 특정 파티션에 입력된 순서대로 가져감
      • offset 번호 순서대로 데이터를 가져가고, 가져간 offset 번호를 기록
      • 컨슈머가 데이터를 가져가도 저장된 데이터는 삭제되지 않고 다른 컨슈머에서 조회가 가능(카프카의 장점)
        • 용도에 따라 컨슈머를 여러개 구성 가능(ex - 백업용, 집계용)

 

'파이프라인' 카테고리의 다른 글

nginx 로그 - fluent - pubsub - apache-beam 샘플 코드  (0) 2023.06.06
fluentd-pubsub 예제  (0) 2023.01.01
fluentd example(docker-compose)  (1) 2022.12.25
fluentd example(docker logging driver)  (0) 2022.12.16
td-agent 설정  (0) 2022.12.11