1) send()함수 호출
2) 전송할 데이터 변환 및 압축 ( Serializer)
3) Record Accumulator
4) Thread에 연결된 broker가 소유한 partition 데이터를 가져옴
5) 각 지정된 partition or Broker에 데이터 전송
6) 데이터 받았다고 producer 에게 응답
1) Acks(0)
2) Acks(1)
3) Acks(All or -1)
config | 설명 | default Value |
---|---|---|
retries | 재전송하는 회수 | 2147483647 |
Retry.backoff.ms | 재전송 하기 전 대기시간 | 100(0.1초) |
Request.timeout.ms | sender thread가 데이터 전송 후 응답 기다리는 시간 | 30,000(30초) |
Delivery.timeout.ms | 요청에 대한 응답 대기 | -- |
Linger.ms : 짧게 하는 순간 더 많이 출발
Batch.size : 1로 하면 그냥 바로 가버림
buffer.memory(accumulator ): 크게 하면 좋음
sender thread 갯수 지정 : 여러개면 더 순서 유지가 안될 수 있음.
enable.idempotence