This possibility highly depends of the option used for the `ack`
property. If you set to `0` then there is high probability. If you set
to `1` then probability decreases, and so forth so on. But in general,
you can minimize the possibility of this to happen using the following
timing configuration:
delivery.timeout.ms > request.timeout.ms + linger.ms >
replica.lag.time.max.ms
-- Ricardo
On 7/19/20 10:49 PM, 김광용 wrote:
Hi, I am newbie in kafka.
I am studying kafka properties to build robust applications.
When I look at Kafka producer properties, I was curious if it is possible
that a client receives timeout exception (by delivery.timeout.ms) but
succeed message delivery.
KIP-91 describes that situation.
https://cwiki.apache.org/confluence/display/KAFKA/KIP-91+Provide+Intuitive+User+Timeouts+in+The+Producer
The "timer" for each batch starts "ticking" at the creation of the batch.
Batches expire in order when max.in.flight.request.per.connection==1. An
in-flight batch expire when delivery.timeout.ms has passed since the batch
creation irrespective of whether the batch is in flight or not. However,
the producer waits the full request.timeout.ms for the in-flight request. *This
implies **that user might be notified of batch expiry while a batch is
still in-flight.*
Could anyone explain about this?
Thank you in advance.