본문 바로가기

kafka14

Producer의 동기(Sync)와 비동기(Async)에서 배치 전송 차이 Producer의 동기(Sync)와 비동기(Async)에서 배치 전송 차이기본적으로 KafkaProducer 객체의 send() 메서드는 비동기(Async)이며 Batch 기반으로 메시지 전송Callback 기반의 Async는 비동기적으로 메시지를 보내면서 RecordMetaData를 Client가 받을 수 있는 방식을 제공Callback 기반의 Async는 여러 개의 메시지가 Batch로 만들어진다.RecordMetaData recordMetadata = KafkaProducer.send().get()와 같은 방식으로 개별 메시지 별로 응답을 받을 때까지 block이 되는 방식이므로 메시지 Batch 처리는 불가, 전송은 Batch 레벨이지만 배치에 메시지는 단 1개 2025. 5. 4.
Producer의 메시지 배치 전송 내부 메커니즘 - linger.ms와 batch.size Producer의 메시지 배치 전송 내부 메커니즘 - linger.ms와 batch.sizeSender Thread는 기본적으로 전송할 준비가 되어 있으면 Record Accumulator에서 1개의 Batch를 가져갈수도, 여러 개의 Batch를 가져갈 수도 있다.linger.ms를 0보다 크게 설정하여 Sender Thread가 하나의 Record Batch를 가져갈 때 일정 시간 대기하여 Record Batch에 메시지를 보다 많이 채울 수 있도록 적용max.inflight.requests.per.connection=2이면 Batch를 총 2개까지 가져올 수 있다. Producer의 메시지 배치 전송 내부 메커니즘 - linger.ms와 batch.size 동작 메커니즘 #1 Producer의 메시.. 2025. 4. 30.
Producer의 메시지 배치 전송 내부 메커니즘 - Record Batch와 Record Accumulator 이해 Producer의 메시지 배치 전송 내부 메커니즘 - Record Batch와 Record Accumulator 이해Serializer -> Partitioner -> Compression(선택) -> Record Accumulator 저장 -> Sender에서 별도의 Thread로 전송send() 메서드는 Record Accumulator Batch에 쌓이게 하고, 쌓은 Batch를 Sender를 통해 Kafka Broker Partition으로 전송한다. Producer Record와 Record BatchKafkaProducer 객체의 send() 메서드는 호출 시마다 ProducerRecord를 입력하지만 바로 전송되지 않고 내부 메모리(Record Accumulator)에서 단일 메시지를 토픽 .. 2025. 4. 29.
acks 값 설정에 따른 Producer의 전송 방식 차이 이해 acks 값 설정에 따른 Producer의 전송 방식 차이 이해Producer의 acks 설정에 따른 send 방식Producer는 해당 Topic의 Partition의 Leader Broker에게만 메시지를 발행한다.Leader Broker가 Follower에게 전달하는 것처럼 보이지만 실제로는 Follower에서 Leader Broker에 요청을 하고 받는다. Producer의 acks 설정에 따른 send 방식 - acks 0Producer는 해당 Topic의 Partition의 Leader Broker에게만 메시지를 발행한다.Producer는 Leader Broker가 메시지 A를 정상적으로 받았는지에 대한 Ack 메시지를 받지 않고 다음 메시지인 메시지 B를 바로 전송메시지가 제대로 전송되었는지.. 2025. 4. 28.
kafka-dump-log 명령어로 로그 파일의 메시지 내용 확인 kafka-dump-log 명령어로 로그 파일의 메시지 내용 확인/bin 경로에 kafka-dump-log 확인 kafka-dump-logs 명령어로 log 파일 내부 확인kafka-dump-log --deep-iteration --files /home/chanboklee/data/kafka-logs/multipart-topic-0/00000000000000000000.log --print-data-log 2025. 4. 28.
카프카 환경 파라미터의 구분 및 kafka-configs 명령어로 파라미터 검색 및 수정 카프카 환경 파라미터의 구분 및 kafka-configs 명령어로 파라미터 검색 및 수정Kafka Config 구분 및 이해Config 구분설명Broker와 Topic 레벨 Config- Kafka 서버에서 설정되는 Config- Topic의 Config 값은 Broker 레벨에서 지정한 Config를 기본으로 설정하여 별도의 Topic 레벨 Config를 설정할 경우 이를 따른다.- 보통 server.properties에 있는 Config는 변경 시 Broker 재기동이 필요한 Static Config이며, Dynamic Config는 kafka-configs를 이용하여 동적으로 Config 변경이 가능하다.Producer와 Consumer 레벨 Config- Kafka 클라이언트에서 설정되는 Conf.. 2025. 4. 27.