apache-kafka 异步发送消息给Kafka会影响消息排序吗?

nbysray5  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(150)

这是我对Kafka异步发送消息和实现回调函数的理解:

方案:生成器将接收4批要发送的消息(为简单起见,发送到同一分区)。

生产商发送批次A。
生成器发送批B。
生成器接收来自代理的回复并实现回调-批次A不成功且可重试,批次B成功,因此生成器再次发送批次A。
这不会打乱信息的顺序吗,因为Kafka现在收到的是A,而不是B?

pqwbnv8z

pqwbnv8z1#

如果需要在分区内对消息进行排序,可以使用幂等生成器:

enable.idempotence=true
akcs=all
max.in.flight.requests.per.connection<=5 
retries>0

这将解决来自生成器的潜在重复项,并保持顺序。
如果你不想使用幂等生成器,那么设置max.in.flight.requests.per.connection=1就足够了。这是生成器端未确认的批数。这意味着在收到A的确认之前,批B不会被发送。

相关问题