[ 
https://issues.apache.org/jira/browse/KAFKA-5621?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16108156#comment-16108156
 ] 

Jiangjie Qin commented on KAFKA-5621:
-------------------------------------

[~ijuma] Like [~apurva] said, for users who care about orders, when an 
exception was thrown from the sender thread the users cannot do much other than 
close the producer immediately in the sender thread and do some error handling 
logic such as fail over or alerting, etc. Some application may recreate a 
producer and retry the unsent messages again, but that may or may not fly. In 
any case, I think waiting/blocking indefinitely for a message to be sent is 
considered bad.

> The producer should retry expired batches when retries are enabled
> ------------------------------------------------------------------
>
>                 Key: KAFKA-5621
>                 URL: https://issues.apache.org/jira/browse/KAFKA-5621
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Apurva Mehta
>            Assignee: Apurva Mehta
>             Fix For: 1.0.0
>
>
> Today, when a batch is expired in the accumulator, a {{TimeoutException}} is 
> raised to the user.
> It might be better the producer to retry the expired batch rather up to the 
> configured number of retries. This is more intuitive from the user's point of 
> view. 
> Further the proposed behavior makes it easier for applications like mirror 
> maker to provide ordering guarantees even when batches expire. Today, they 
> would resend the expired batch and it would get added to the back of the 
> queue, causing the output ordering to be different from the input ordering.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to