동아리에서 Kafka를 주제로 발표하게 되었는데, 준비하며 학습 내용들을 기록용으로 업로드합니다. 내용은 Kafka의 개념부터 시작하여 탄생배경, 구성 요소들을 차례로 설명하며 kafka 기초에 대해 정리하였습니다. 본 자료는 '[책] 아파치 카프카 애플리케이션 프로그래밍 with 자바 – 최원영지음' 을 참고하여 만든 자료로, 혹시 문제가 있거나 내용상에 오류가 있다면 공유 부탁드립니다 :) 목차 1. 카프카란? 2. 카프카의 탄생배경 2-1. 이전의 구조 2-3. 그 이후 3. 카프카 구성요소 4. 브로커 Broker 5. 토픽과 파티션 5-1. 토픽과 파티션이란? 5-2. 토픽과 파티션 (1) - Producer와 연결 측면 5-3. 토픽과 파티션 (2) - Consumer와 연결 측면 6. 데이터..
#️⃣ Data Engineering/Kafka
💜 Kafka 클라이언트 책 '아파치 카프카 애플리케이션 프로그래밍 with 자바 - 최원영 지음'을 공부하며 정리하였습니다. 1. 카프카 클라이언트 카프카 클러스터 명령을 내리거나 데이터를 송수신하기 위해 카프카 클라이언트 라이브러리는 카프카 프로듀서, 컨슈머, 어드민 클라이언트를 제공하는 카프카 클라이언트를 사용하여 애플리케이션을 제공한다. 카프카 클라이언트는 라이브러리이기 때문에 자체 라이프사이클을 가진 프레임워크나 애플리케이션 위에서 구현하고 실행 해야한다. (1) 프로듀서 API 프로듀서는 데이터 시작점으로, 프로듀서 애플리케이션은 카프카에 필요한 데이터를 선언하고 브로커의 특정 토픽의 파티션에 전송한다. 프로듀서는 데이터를 전송할 때 리더 파티션을 가지고 있는 카프카 브로커와 직접 통신한다. ..
💜 Kafka 컴포넌트 (2) - 토픽과 파티션, 레코드 책 '아파치 카프카 애플리케이션 프로그래밍 with 자바 - 최원영 지음'을 공부하며 정리하였습니다. 1. 토픽과 파티션 토픽 : 카프카에서 데이터를 구분하기 위해 사용하는 단위 파티션 : 토픽은 1개 이상의 파티션을 소유함 파티션에는 프로듀서가 보낸 데이터들이 저장되는데 이 데이터를 레코드(record)라고 부른다. 즉 프로듀서가 전송한 레코드는 파티션에 저장된다. 파티션은 카프카 병렬처리의 핵심으로 그룹으로 묶인 컨슈머들이 레코드를 병렬로 처리할 수 있도록 매칭됨 컨슈머의 처리량이 한정된 상황이라면, 가장 좋은 방법은 컨슈머의 개수를 늘려 스케일 아웃하는 것이다. 컨슈머 개수를 늘림과 동시에 파티션 개수도 늘리면 증가하기 때문이다. 파티션은 큐..
💜 Kafka 책 '아파치 카프카 애플리케이션 프로그래밍 with 자바 - 최원영 지음'을 공부하며 정리하였습니다. 1. Kafka 1.1 Kafka 탄생 배경 당시 상황 2011년 당시, 단방향 통신을 통해 소스 애플리케이션에서 타깃 애플리케이션으로 연동하는 소스코드를 작성하는 식으로 데이터 수집 및 분배 아키텍처를 운영했다. 이러한 구조는 아키텍처가 거대해지고, 소스 애플리케이션과 타깃 애플리케이션을 연결하는 파이프라인 개수가 많아지면서 소스버전/버전 관리 이슈가 그대로 전달 되었다. 탄생 링크드인 데이터팀은 이러한 상황에서 신규 시스템인 Kafka를 만들었다. Kafka는 한 곳에 모아 처리할 수 있도록 중앙 집중화하여 데이터 스트림을 한 곳에서 실시간으로 관리할 수 있게 되었다. kafka르 중앙..