Programming/Kafka

[kafka] Producer Connection Config

bisi 2020. 4. 19. 12:15

Producer 주요 옵션

 

bootstrap.servers

  • Type: list
  • Default: ""
  • Valid Values: non-null string
  • Importance: high
  • 카프카 클러스터는 마스터 개념이 없기 때문에 모든 서버가 클라이언트에게 요청받을 수 있음.

  • 카프카 플러스터에 처음 연결하기 위한 호스트와 포트 정보로 구성된 리스트 정보 

 

acks

  • Type: string
  • Default: 1
  • Valid Values: [all, -1, 0, 1]
  • Importance: high
  • 프로듀서가 카프카 토픽의 리더에게 메시지를 보낸 후 요청을 완료하기 전 ack(승인)의 수 

  • 해당 옵션의수가 작으면 성능은 좋아지만, 메시지 손실가능성이 있다. 옵션의 수가 커지면 성능이 좋지 않지만 손실 가능성이 줄어들거나 없어짐

  • acks=0 :  프로듀서는 서버로부터 어떠한 ack도 기다리지 않는다는 의미로 서버가 데이털르 받았는지 보장하지 않고, 클라리언트는 전송 실패에 대한 결과를 알지 못하기 때문에 재요청 설정도 적용되지 않음.

  • acks=1 : 리더는 데이터를 기록하지만, 모든 팔로워는 확인하지 않음. 일부의 데이터 손실 가능성 있음.

  • acks=-1, acks=all : 리더는 ISR의 팔로워로부터 데이터에 대한 ACK를 기다림. 하나의 팔로워가 있는 한 데이터는 손실되지 않으며, 데이터 무손실에 대해 가장 강력하게 보장.

 

buffer.memory

  • Type: long
  • Default: 33554432
  • Valid Values: [0,...]
  • Importance: high
  • 프로듀서가 카프카 서버로 데이터를 보내기 위해 잠시 대기(배치 전송이나 딜레이등)할수 있는 전체 메모리 바이트 

 

compression.type

  • Type: string
  • Default: none
  • Valid Values: none, gzip, snappy, lz4, zstd
  • Importance: high
  • 프로듀서가 데이터를 압축해서 보낼 수 있는데, 어떤 차입으로 압축할지를 정할 수 있음.

  • 옵션으로 none, gzip, snappy, lz4같은 다양한 포맷중 하나 선택

 

retries

  • Type: int
  • Default: 2147483647
  • Valid Values: [0,...,2147483647]
  • Importance: high
  • 일시적인 오류로 인해 전송에 실패한 데이터를 다시 보내는 횟수

 

ssl.key.password

  • Type : 비밀번호

  • Defualt : null

  • Valid Values :

  • Importanc : 높음

  • 키 저장소 파일에있는 개인 키의 비밀번호. 클라이언트의 경우 선택 사항임.


     

ssl.keystore.location

  • Type : 문자열
  • Defualt : null
  • Valid Values :
  • Importanc : 높음
  • 키 저장소 파일의 위치. 클라이언트의 경우 선택 사항이며 클라이언트의 양방향 인증에 사용할 수 있음

 

ssl.keystore.password 

  • Type : 비밀번호
  • Defualt : null
  • Valid Values :
  • Importanc : 높음
  • 키 저장소 파일의 저장소 비밀번호. 클라이언트의 경우 선택 사항이며 ssl.keystore.location이 구성된 경우에만 필요.

 

ssl.truststore.location

  • Type : 문자열
  • Defualt : null
  • Valid Values :
  • Importanc : 높음
  • 신뢰 저장소 파일의 위치

 

ssl.truststore.password

  • Type : 비밀번호
  • Defualt : null
  • Valid Values :
  • Importanc : 높음
  • 신뢰 저장소 파일의 비밀번호

  • 비밀번호가 설정되지 않은 경우 신뢰 저장소에 대한 액세스는 여전히 사용 가능하지만 무결성 검사는 사용 불가능

 

batch.size

  • Type: int
  • Default: 16384
  • Valid Values: [0,...]
  • Importance: medium
  • 배치 크기 바이트(batch size byte)단위를 조정함.

  • 기본값 : 16384, type : int 

  • 프로듀서는 같은 파티션으로 보내는 여러 데이터를 함께 배치로 보내려고 시도하는데, 이러한 동작은 클라이언트와 서버 양쪽 성능적인 측면에서 도움이 된다. 

  • 정의된 크기보다 큰데이터는 배치를 시도하지 않게 됨.

  • 고가용성이 필요하다면 batch사이즈를 주지 않아도 됨.

 

linger.ms

  • Type: long
  • Default: 0
  • Valid Values: [0,...]
  • Importance: medium
  • 배치형태의 메시지를 보내기 전에 추가적인 메시지를 기다리는 시간을 조정

  • 프로듀서는 배치사이즈에 도달하면 이 옵션과 상관없이 즉시 메시지를 전송하고, 배치 사이즈에 도달하지 못한 상황에서 linger.ms 제한 시간에 도달했을 때 메시지들 전송

  • 기본값(지연없음)이며 0보다 큰 값을 설정하면 지연 시간은 조금 발생하지만 처리량은 좋아짐.

 

max.request.size

  • Type: int
  • Default: 1048576
  • Valid Values: [0,...]
  • Importance: medium
  • 프로듀서가 보낼 수 있는 최대 메시지 바이트 사이즈.

 

 

 

참고 사이트 : https://kafka.apache.org/documentation/#producerconfigs

참고 문헌 : 카프카, 데이터 플랫폼의 최강자 실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지