Kafka 프로듀서 주요옵션

1 minute read

필수 옵션

  • java 라이브러리 기준

  • bootstrap.server : 프로듀서가 데이터를 전송할 대상 카프카 클러스터에 속한 브로커의 호스트 이름:포트 1개 이상 작성한다. 2개 이상 브로커 정보를 입력하여 일부 브로커에 이슈가 발생하더라도 접속하는데에 이슈가 없도록 설정 가능하다.
  • key.serializer : 레코드의 메세지 키를 직렬화 하는 클래스를 지정한다.
  • value.serializer : 레코드의 메세지 값을 직렬화 하는 클래스를 지정한다.
    • string serializer 로 되어있지 않으면 kafka-console-consumer(기본)로 보지 못할 수 있는 경우가 생길 수 있다.
    • 네크워크나 디스크 사용량에서 조금 불리할 수도 있지만 웬만해서 특수한 경우가 아닌경우에 String serializer로 하면 운영상 이점이 있다.

선택 옵션

  • acks : 프로듀서가 전송한 데이터가 브로커들에 정상적으로 저장되었는지 전송 성공 여부를 확인하는 데에 사용하는 옵션이다. 0, 1, -1(all) 중 하나로 설정할 수 있다. (기본값 : 1)
    • 1 : 데이터가 리더 팔로워에 정상적으로 저장되었는지 확인
  • linger.ms : 배치를 전송하기 전가지 기다리는 최소 시간이다. (기본값 : 0)
  • retries : 브로커로부터 에러를 받고 난 뒤 재전송을 시도하는 횟수를 지정한다. (기본값 : 2147483647)
  • max.in.flight.requests.per.connection : 한 번에 요청하는 최대 커넥션 개수. 설정된 값만큼 동시에 전달 요청을 수행한다. (기본값 : 5)
    • 데이터 처리량이 많을 때 튜닝 포인트가 된다.
  • partitioner.class : 레코드를 파티션에 전송할 때 적용하는 파티셔너 클래스를 지정한다. (기본 값 : org.apache.kafka.clients.producer.internals.DefaultPartitioner)
  • enable.idempotence : 멱등성 프로듀서로 동작할 지 여부를 설정한다. (기본값 : false)
    • 3 버전에서는 기본값이 true이다. (2.5대에서는 false)
  • transactional.id : 프로듀서가 레코드를 전솔할 때 레코드를 트랜잭션 단위로 묶을 지 여부를 설정한다. (기본값 : null)
    • id 를 지정하면 enable.idempotence 설정이 자동으로 true가 된다.
-->

Categories:

Updated:

Comments