프로듀서 프로듀서 애플리케이션의 역할 카프카에 필요한 데이터를 선언하고 브로커의 특정 토픽의 파티션에 전송한다. 데이터를 전송할 때 리더 파티션을 가지고 있는 브로커와 직접 통신한다. 브로커로 데이터를 전송할 때 내부적으로 파티셔너, 배치 생성 단계를 거친다. 프로듀서 내부 구조 ProducerRecord: 프로듀서에서 생성한 레코드, 오프셋은 미포함 send(): 레코드 전송 요청 메소드 Partitioner: 어느 파티션으로 전송할 지 지정하는 파티셔너이다. Accumulator: 배치로 묶어서 전송할 데이터를 모으는 버퍼이다. send()를 해도 바로 보내는것이 아니라 Accumulator내 배치의 임계치까지 데이터가 쌓이면 그때 카프카 클러스터와 TCP 통신하여 데이터를 전송하게 된다. 이러한 배..
카프카 CLI tool 토픽 관련 명령을 실행할 때 필수 옵션과 선택옵션이 존재한다. 해당 값들이 어떻게 설정되어있는지, 어떻게 설정할지 확인 후 CLI 툴을 사용하자. zookeeper-server.start.sh / kafka-server-start.sh 카프카 실행을 로컬에서 진행할 것이므로 로컬 통신을 위한 호스트를 지정해주자. 로그와 인덱스 등의 파일을 저장하기 위한 위치도 지정해준다. etc/hosts 파일에 localhost 주소에 대한 "my-kafka"라는 별칭을 추가해준다. kafka-topics.sh 카프카 토픽에 대해 CLI를 진행해보자. kafka-topcis.sh를 통해 토픽 생성이 가능하다. 카프카 토픽을 생성 시 디폴트 값으로 설정된 것을 확인해 볼 수 있다. 다음과 같이 처..
1. 카프카 역사와 미래 프로듀서 -토픽 - 컨슈머 구조 토픽 내 여러 파티션이 존재하며, 프로듀싱은 하나의 파티션에만 쌓인다. 파티션은 큐 구조로 FIFO로 쌓이지만 컨슈밍하여도 제거되지 않는다. 읽은 위치는 commit으로 기록한다. 높은 처리량 프로듀서 → 브로커, 브로커 → 컨슈머로 데이터를 전송할 때 묶음 단위 전송으로 속도를 개선 여러 파티션에 분배하고, 파티션 수 만큼 컨슈머를 늘림으로서 병렬처리를 하여 시간당 데이터 처리량 개선 가능 확장성 특정 이벤트가 몇건 들어올 지 모를 때 가변적으로 대응할 수 있다 데이터를 저장하고 있는 곳이 브로커이며, 사용량이 적고 많은에 따라 브로커 scale-in/out이 가능 영속성 다른 메시징 플랫폼과 다르게 전송받은 데이터를 메모리가 아닌 파일 시스템에..
- Total
- Today
- Yesterday