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의 기본부터 확장 응용까지
'Programming > Kafka' 카테고리의 다른 글
[kafka] 메시지 전송 케이스 별 프로듀서 옵션 설정 (0) | 2020.04.20 |
---|---|
[kafka] 고가용성 리플리케이션 (0) | 2020.04.15 |
[kafka] 데이터 모델 토픽 파티션 오프셋 (0) | 2020.04.14 |