Producer 주요 옵션

mint-melon·2022년 4월 18일
0

Apache Kafka

목록 보기
2/3

Producer 주요 옵션

  • bootstrap.servers : 클러스터는 마스터 개념이 없으므로, 각가의 호스트와 포트 정보. 모든 브로커의 정보를 적지 않아도 최초로 연결된 브로커로부터 통신을 위한 정보를 가져옴.
  • client.dns.lookup : 클라인트가 하나의 IP와 연결하지 못할 경우에 다른 IP로 시도.
    use_all_dns_ips - 기본값. hostname의 모든 ip에 대해 연결. bootstrap 해당 하는 domain name을 그대로 가져가서 클라이언트 인스턴스 생성. 추후 polling과 같은 동작이 일어날 때 서버와 connection을 맺는 시점에서 domain name을 모두 resolve.
    resolve_canonical_bootstrap_servers_only - 프로듀서 또는 컨슈머가 최초 인스턴스 생성 시 bootstrap의 모든 ip에 대해 reverse lookup 수행. Kerberos의 SASL 인증을 통한 카프카 연동을 하기 위함. FQDN을 얻기 위해 사용. 최초 인스턴스 생성 시 domain name에 대한 모든 ip를 가져와서 bootstrap에 등록.
    FQDN - Full Qualified Domain Name. 전체 주소 도메인 네임.
    --> 두 옵션의 가장 큰 차이는 domain에 대한 ip를 lookup하는 시기인 듯
  • acks : 프로듀서가 카프카 토픽의 리더 측에 메시지를 전송한 후 요청 완료를 결정하는 옵션.
    0 - 요청만 보냄. 빠른 전송이 가능하나 메시지 손실 가능성이 있음.
    1 - 리더가 받았는지 확인. 대부분의 경우에 기본값으로 사용된다.
    all(-1) - 팔로워가 받았는지 모두 확인. 다소 느리지만 하나의 팔로워가 있는 한 메시지 손실은 없다.
  • buffer.memory : 프로듀서가 카프카 서버로 데이터를 보내기 위해 대기할 수 있는 전체 메모리 바이트.
  • 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 : 전송에 실패한 데이터를 다시 보내는 횟수. 음수로 하면 0으로 바뀌나
  • batch.size : 배치 크기 설정.
  • linger.ms : 배치 크기에 도달하지 못해도 해당 시간에 도달하면 메시지 전송.
  • transactional.id : 프로듀서 트랜잭션을 구분하기 위한 ID. 중복 방지를 위해 UUID 사용. '정확히 한 번 전송'을 보장함. enable.idempotence 값을 true로 설정하고 사용.
    UUID - Universally Unique Identifier. 범용 고유 식별자. 소프트웨어 구축에 쓰이는 식별자 표준으로, 개방 소프트웨어 재단(OSF)이 분산 컴퓨팅 환경(DCE)의 일부로 표준화하였다.

출처) 실전 카프카 개발부터 운영까지 (고승덕 저)
https://blog.voidmainvoid.net/331

profile
mint-melon

0개의 댓글