【发布时间】:2021-01-21 02:08:19
【问题描述】:
在 kafka 关于重试的文档中,它说:
在不将 max.in.flight.requests.per.connection 设置为 1 的情况下允许重试可能会改变记录的顺序,因为如果将两个批次发送到单个分区,并且第一个批次失败并被重试,但第二个批次成功,那么第二批的记录可能会首先出现。
根据段落,如果两个批次被发送到同一个分区,kafka 可以提交第二批,而第一批失败。
但这似乎与 kafka 关于在同一分区中排序的保证相矛盾。因为通常如果一个批次失败了,后面的所有批次都应该失败,否则如何保证订购?另外,kafka如何保证producer发送的批次顺序和broker收到的顺序一致。
所以我的问题是:kafka 如何保证不同批次(同一分区)的排序,或者它只是不保证。
【问题讨论】:
标签: apache-kafka kafka-producer-api