Hi Scott,

what producer client are you using?

Reordering is possible in async producers in the case of temporary broker
failures
and the combination of request.required.acks != 0 and retries > 0.

Consider the case where a producer has 20 messages in-flight to the broker,
out of those
messages # 1-10 fails due to some temporary failure (?) on the broker side,
but message # 11-20 are accepted.
When the producer receives error results from the broker for message # 1-10
it will try to resend
these 10 failed messages, that are now accepted, causing them to end up
after message #20 in the log - thus reordered.

This failure scenario should be rather rare though.


Regards,
Magnus

2015-05-12 20:18 GMT+02:00 Scott Chapman <sc...@woofplanet.com>:

> We are basically using kafka as a transport mechanism for multi-line log
> files.
>
> So, for this we are using single partition topics (with a replica for good
> measure) writing to a multi-broker cluster.
>
> Our producer basically reads a file line-by-line (as it is being written
> to) and publishes each line as a message to the topic. We are also writing
> as quickly as we can (not waiting for ACK).
>
> What I am seeing is occasionally the messages in the topic appear to be
> slightly out of order when compared to the source file they were based on.
>
> I am wonder if this might happen when the producer switches brokers because
> we are not waiting for the ACK before continuing to write.
>
> Does this make any sense??
>
> Thanks in advance!
>
> -Scott
>

Reply via email to