小编Gre*_*Nun的帖子

Apache Kafka分区保证中的消息顺序

阅读有关主题分区中消息排序的文章:https : //blog.softwaremill.com/does-kafka-really-guarantee-the-order-of-messages-3ca849fd19d2

允许重试而不将max.in.flight.requests.per.connection设置为1可能会更改记录的顺序,因为如果将两个批次发送到单个分区,并且第一个批次失败并被重试,但是第二个批次成功,则记录在第二批中可能会首先出现。

据此,可以通过两种类型的生产者配置来实现订购保证:

max.in.flight.requests.per.connection=1 // can impact producer throughput
Run Code Online (Sandbox Code Playgroud)

或替代

enable.idempotence=true
max.in.flight.requests.per.connection //to be less than or equal to 5
max.retries // to be greater than 0
acks=all
Run Code Online (Sandbox Code Playgroud)

谁能解释第二种配置如何实现订单保证?另外,在第二个配置中,仅启用一次语义。

apache-kafka kafka-producer-api

5
推荐指数
1
解决办法
132
查看次数

标签 统计

apache-kafka ×1

kafka-producer-api ×1