카프카 프로듀서 설정 정리 – 11

카프카 프로듀서 설정 정리 – 11

카프카 프로듀서 설정 옵션들에 대한 내용입니다. 카프카 프로듀서는 메시지를 보내는 역할을 하는 클라이언트를 의미합니다. 안정적인 데이타 파이프라인 구축을 위해서는 서비스 요구사항에 맞는 프로듀서 설정이 매우 중요하므로 각 설정에 대한 명확한 이해가 필요합니다.

카프카 컨슈머에 대한 설명이 필요하신 분은 여기 링크를 참고부탁드립니다.

카프카 프로듀서 설정 옵션

  • bootstrap.servers : 클라이언트가 카프카 클러스터에 처음 연결하기 위한 호스트와 포트 정보를 기입합니다.
    • java 소스를 예로 들어보겠습니다.
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;

import java.util.Properties;

public class ProducerSample {
    public static void main(String[] args) {
        Properties props = new Properties(); // Properties 인스턴스 생성
        props.put("bootstrap.servers", "kafka01.example.test:9092,kafka02.example.test:9092,kafka03.example.test:9092"); //브로커 설정.
        ....
   }
}

  • client.dns.lookup : 하나의 호스트에 여러 IP를 매핑해 사용하는 일부 환경에서 클라이언트가 하나의 IP와 연결하지 못할 경우에 다른 IP로 시도하는 설정입니다.
    • use_all_dns_ips : 기본값, DNS에 할당된 호스트의 모든 IP를 쿼리하고 저장함. 실패하면 다음 IP로 접근을 시도합니다.
    • resolve_canonical_bootstrap_servers_only : 커버로스 환경에서 FQDN을 얻기 위한 용도로 사용됩니다.

  • acks : 프로듀서가 토픽의 리더 측에 메시지를 전송한 후 전송 완료를 결정하는 옵션입니다.
    • 0 : 빠른 전송 보장하나 일부 메시지 손상 가능성이 있습니다.
    • 1 : 리더가 메시지를 받았는지 확인합니다. 모든 팔로워를 전부 확인하지는 않고 대부분 이 설정을 사용합니다.
    • all : 팔로워까지 메시지를 받았는지 여부를 확인함. 느릴 수는 있지만 하나 이상의 팔로워가 있는 한 메시지는 손실되지 않습니다.

  • buffer.memory : 프로듀서가 카프카 서버로 데이터를 보내기 위해 잠시 대기(배치 전송이나 딜레이 등)할 수 있는 전체 메모리 바이트(byte)입니다.

  • compression.type : 프로듀서가 메시지 전송시 선택할 수 있는 압축 타입. none, gzip, snappy, lz4, zstd 중 원하는 타입을 선택할 수 있습니다.

  • enable.idempotence : 설정을 true로 하는 경우 중복 없는 전송이 가능하며, 이와 동시에 max.in.flight.requests.per.connection은 5 이하, retries는 0이상, acks는 all로 설정해야 합니다.

  • max.in.flight.requests.per.connection : 하나의 커낵션에서 프로듀서가 최대한 ACK 없이 전송할 수 있는 요청수. 메시지의 순서가 중요하다면 1로 설정할 것을 권장하나 성능은 다소 떨어집니다.

  • retries : 일시적인 오류로 인해 전송에 실패한 데이터를 다시 보내는 횟수입니다.

  • batch.size : 프로듀서가 동일한 파티션으로 전송할 데이타의 배치 크기입니다.

  • linger.ms : 배치 크기에 도달하지 못한 상황에서 linger.ms 제한 시간에 도달했을 때 메시지를 전송합니다.

  • transactional.id : ‘정확히 한 번 전송’을 위해 사용하는 옵션. 동일한 TransactionalId에 한해 정확히 한 번 보장합니다. enable.idempotence를 true로 설정해야 합니다.

이상으로 간략한 카프카 프로듀서 설정 정리를 마치겠습니다.

카프카 프로듀서 설정에 대한 자세한 내용은 여기 링크를 참고바랍니다.

좀더 자세한 설명을 원하시는 분은 여기 링크로 ‘실전 카프카 개발부터 운영까지’ 책을 사서 보시길 추천드립니다.

참고 : 실전 카프카 개발부터 운영까지

실전 카프카 개발부터 운영까지:데이터플랫폼의 중추 아파치 카프카의 내부동작과 개발 운영 보안의 모든것, 책만 아파치 카프카의 모든 것 세트 : 카프카 데이터 플랫폼의 최강자+실전 카프카 개발부터 운영까지, 책만 (서점추천) 헤드 퍼스트 디자인 패턴 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 24단계 실습으로 정복하는 쿠버네티스 + 실전 카프카 개발부터 운영까지 (전2권), 위키북스 (서점추천) 데이터 파이프라인 핵심 가이드 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 몽고DB 완벽 가이드 + 실전 카프카 개발부터 운영까지 (전2권) (서점추천) 클린 코드의 기술 + 실전 카프카 개발부터 운영까지 (전2권), 영진닷컴 (서점추천) 카프카 핵심 가이드 + 디지털 플랫폼 전략 수립을 위한 쿠버네티스 실전 활용서 (전2권), 제이펍 아파치 카프카 애플리케이션 프로그래밍 with 자바:카프카의 개념부터 스트림즈 커넥트 스프링 카프카까지, 비제이퍼블릭 카프카 핵심 가이드 개정증보판, 제이펍 실전 아파치 카프카:애플리케이션 개발부터 파이프라인 사물인터넷 데이터 허브 구축까지, 한빛미디어 카프카 데이터 플랫폼의 최강자:실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지, 책만 카프카 스트림즈와 ksqlDB 정복:실시간 데이터 처리, 에이콘출판 카프카 핵심가이드:실시간 데이터와 스트림 프로세싱, 제이펍

“이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”

Back to top