Kafka幂等生产者

问题描述 投票:0回答:1

根据文档,幂等的 kafka 生产者维护一个序列号,确保事件的重复数据删除和排序。

这是否意味着在单个生产者会话中,如果幂等 kafka 生产者已成功接收到序列 1 的事件的 ack,但由于某些错误,它无法生成序列 2 的事件,那么它会无限期挂起?序列 3 和 4 的事件永远不会被消耗吗?

apache-kafka confluent-platform kafka-producer-api
1个回答
0
投票

这取决于幂等Producer设置max.in.flight.requests.per.connection的值。

在 Kafka 的早期版本中,它强制 max.in.flight.requests.per.connection 为 1,这意味着序列为 2 的事件将由于 INT.MAX 重试而无限期挂起。

在最新版本的 Kafka 中 幂等生产者强制 max.in.flight.requests.per.connection < 5,where events with sequence 3 and 4 are sent and order is internally maintained properly even later receiving event with sequence 2.

© www.soinside.com 2019 - 2024. All rights reserved.