본문 바로가기

idempotence2

8. Kafka - Idempotence, 멱등성 1. 최대 한 번 전송 (at most once) acks = 0으로 비동기로 전송만 한 번 수행, 유실될 수 있지만 재전송하지 않는 방법. 2. 적어도 한 번 전송 (at least once) 중복을 허용하며 실패시에도 retry로 재전송, acks = 1, all 브로커로부터 ACK를 받고 다음 메시지를 전송. 메시지 소실은 없지만 중복 전송을 할 수 있음. 데이터를 보낸 후, 저장 되었지만 ACK를 보내지 못한 경우 다시 보내게 되어 중복이 가능. 3. 정확히 한 번 전송 (exactly once) 중복 없이 전송(Idempotence, 멱등성), 메시지 전송 재시도 시 중복을 제거함 트랜잭션 기반의 전송. Producer가 메시지를 전송할 때 프로듀서의 ID와 메시지 Sequence를 Header.. 2024. 4. 4.
7. Kafka Producer 메시지 전송과 재전송 옵션 max.block.ms send() 호출 시 Record Accumulator가 꽉 차서 입력되지 못하여 block 되는 최대 시간. 초과되면 Timeout Exception이 발생. linger.ms Record Accumulator에서 Sender Thread로 보내는 대기 시간. 즉 Producer가 메시지를 보낸 후 지정된 시간 동안 대기하여 모아서 처리하게 됨. request.timeout.ms Sender Thread에서 Broker로 메시지를 송신한 후 응답을 기다리는 시간.응답이 오지 않는 경우 재전송을 하거나 Timeout Exception 발생. retry.backoff.ms 재전송 시도를 하기 위한 대기 시간 delivery.timeout.ms 전송과 재전송을 하는 과정에서 허용된 최.. 2024. 4. 4.