问题描述
作为构建应用程序的一部分,我们正在尝试提供排序和至少一次保证。但是经过这个doc之后,似乎我们无法使用KafkaProducer的默认配置来提供排序保证。所以给定货保证
我们有:
- 将 MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION 设置为 1。
- 使生产者具有幂等性。
但它也到处提到使用任何一个选项都会对延迟产生严重影响,因为在 (1) 的情况下我们不能一次发送两批,在 (2) 的情况下我们必须等待所有每个消息的副本确认。
但我在多节点集群上进行本地检查,主题有 3 个分区,复制因子为 2。当我尝试通过每个生产者发送 10k 或 20k 消息时,我没有发现延迟有太大差异。我观察到的延迟是
#records normalProducer IdempotentProducer MaxInflightsPerConnection=1
(time taken in ms) (time taken in ms) (time taken in ms)
10k 7-8 on avg 8-9 on avg 8-9 on avg
20k 14-15 on avg 17-18 on avg 16-17 on avg
是的,使用幂等生产者或 inflight_request=1 会稍微增加延迟,但没有任何显着增加。 所以我想知道在什么条件下我们会看到使用幂等生产者或其他生产者对延迟的严重影响?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)