
카프카 KRaft 모드 통합 클러스터 구성하기카프카의 예정된 릴리즈 정보에 4.0 버전부터는 ZK 모드가 제거되고 KRaft 모드만 지원 예정입니다.KRaft 모드도 ZK모드와 같이 실제 서비스 운영 시에는 컨트롤러와 브로커가 각각 분리되어있는 별도 구성 Cluster를 권장합니다.여기에서는 규모가 비교적 작은 로컬 등의 개발 환경에서 카프카를 쉽게 사용하기 위해 KRaft 모드로 Docker Compose 구성을 했습니다.docker는 Docker Desktop 4.31.0 버전을 설치한 환경에서 진행했습니다.따라 하실 분들은 미리 Docker Desktop을 설치 및 실행해주셔야 합니다. KRaft 모드 관련 자세한 정보는 아래 링크를 참고바랍니다.https://devocean.sk.com/blog..
7장. Processor API 7장에서는 Processor API(PAPI라고도 부름)라는 카프카 스트림즈의 하위-수준 API에 대해 설명 Processor API 상위-수준 DSL보다 적은 추상화를 갖고 있으며 명령형 프로그래밍 방식을 사용 코드는 좀 더 길어지지만 토폴로지에서의 데이터 흐름, 스트림 프로세스들의 관계, 상태의 생성과 유지보수, 특정 연산의 수행 시간과 같은 특징들을 세세하게 제어할 수 있어 상위-수준 DSL보다 훨씬 강력함 언제 Processor API를 사용해야 하나? 일반적으로 아래 특징들 때문에 사용 레코드의 메타데이터(토픽, 파티션, 오프셋 정보, 레코드 헤더 등) 접근 주기적인 함수를 스케쥴링하는 기능 레코드를 하위 스트림 프로세서로 넘길 때 사용 가능한 세세한 제어 상태 ..

프로듀서의 내부 동작 원리와 구현 책을 읽고 정리한 내용입니다. 아직 내용 정리 중입니다. 프로듀서 디자인(3장 내용) 레코드 구성 토픽(필수) : 메시지를 전송할 대상 토픽 지정 벨류(필수) : 전송할 메시지 내용 파티션(선택사항) : 특정 파티션으로 지정하여 전송하기 위한 값 키(선택사항) : 특정 파티션에 레코드들을 정렬하기 위한 레코드의 키 값 프로듀서의 전체적인 흐름 각 레코드들은 프로듀서의 send() 메서드를 통해 시리얼라이저(serializer)와 파티셔너(partitioner)를 거쳐서 카프카로 전송됩니다. 프로듀서 레코드의 파티션을 지정했을 경우 파티셔너는 아무 동작하지 않고 지정된 파티션으로 레코드를 전달 프로듀서 레코드의 파티션을 지정 안했을 경우 키를 가지고 파티션을 선택해 레코드..
카프카 기본 개념과 구조 책을 읽고 정리를 위해 메모한 내용에 대해 작성했습니다. 카프카 기초 다지기 카프카를 구성하는 주요 요소 주키퍼: 카프카의 메타데이터 관리 및 브로커의 정상상태 점검을 담당 카프카 또는 카프카 클러스터: 여러 대의 브로커를 구성한 클러스터를 의미 브로커: 카프카 애플리케이션이 설치된 서버 또는 노드 프로듀서: 카프카로 메시지를 보내는 역할을 하는 클라이언트를 총칭 컨슈머: 카프카에서 메시지를 꺼내가는 역할을 하는 클라이언트를 총칭 토픽: 카프카는 메시지 피드들을 토픽으로 구분하고, 각 토픽의 이름은 카프카 내에서 고유함 파티션: 병렬 처리 및 고성능을 얻기 위해 하나의 토픽을 여러 개로 나눈 것 세그먼트: 프로듀서가 전송한 실제 메시지가 브로커의 로컬 디스크에 저장되는 파일 메시..