min.insync.replica 配置是否会影响 Kafka 生产者吞吐量?

Mar*_*kiv 2 performance-testing throughput apache-kafka

来自 kafka 文档

当生产者将 acks 设置为“全部”(或“-1”)时,此 min.insync.replica 配置指定必须确认写入才能将写入视为成功的最小副本数。

它说当最小数量的同步副本确认时,写入成功但是当我使用min.insync.replica1 和 3运行性能测试时 (对于 5 个代理设置中的分区 = 1 和 RF = 5 的主题),kafka 的性能生产者,与acks='all',相同。

那么,min.insync.replica每个主题的配置是否会影响 Kafka 生产者吞吐量(隔离运行)acks="all"?

Rom*_*nko 11

如果使用acks='all',leader 会等到同步副本收到消息后再发回确认或错误,因此性能会受到影响。在 的情况下min.insync.replica=1,一旦将消息写入领导者,生产者就会得到响应。它应该比使用更快,min.insync.replica=3因为在这种情况下,生产者等待 2 个副本来获取所有消息,然后才能将消息视为已提交。

您的结果意味着您的经纪人之间的延迟非常低。我相信如果您在不同的数据中心/区域启动代理,您应该会看到不同之处。


Ach*_*eus 7

min.insync.replica是必须确认数据已成功接收才能成功写入的最小副本数。

如果设置min.insync.replica为 3,吞吐量肯定会受到影响,但设置或则acks=all不会影响,但是这样做时,如果领导者发生故障,可能会导致数据丢失。acks=01