为什么Kafka Producer ack =在发送同步消息时都这么慢

时间:2016-08-31 08:15:57

标签: apache-kafka kafka-producer-api

我有一个Kafka version : 0.9.0.1应用程序正在与ack=all同步发送消息。

通过此设置,我每秒可以获得一条消息。 75。

当我更改为ack=1时,我将吞吐量提高到每秒453条消息。

为什么ack=all运行速度慢6倍?

我的目标Kafka主题有一个分区,复制设置为3。

我有什么方法可以提高ack=all

的性能

2 个答案:

答案 0 :(得分:1)

没有办法因为ack设置是为了在性能和丢失数据的变化之间进行权衡。 所以,你不能同时选择两者。

答案 1 :(得分:1)

  

有什么方法可以提高ack = all的性能吗?

启用消息重试时使用异步发送。消息将以批量方式发送,您将获得更好的吞吐量。

异步发送并不意味着丢失数据,可以利用消息重试和消息发送回调来保证发送成功,即使(replication factor - min.insync.replicas)代理已经失效。