为什么Kafka Producer ack=all发送同步消息的时候这么慢

Why is Kafka Producer ack=all so slow when sending synchronous messages

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

通过此设置,我实现了每秒大约一条消息。 75.

当我更改为 ack=1 时,我的吞吐量增加到每秒 453 条消息。

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

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

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

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

Is there any way I can increase the performance of ack=all?

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

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