Kafka文献
当生产者将acks设置为“all”(或“-1”)时,此min.insync.replica配置指定必须确认写入的副本的最小数目,这样才能认为写入成功。
它表示当同步副本的最小数量确认时,写入成功,但当我使用运行性能测试时 min.insync.replica
作为1和3(对于5代理设置中的partition=1和r.f=5的主题),kafka producer的性能 acks='all'
,是相同的。
那么,你呢 min.insync.replica
每个主题的配置会影响kafka生产者的吞吐量(以隔离方式运行) acks="all"
?
2条答案
按热度按时间jgzswidk1#
如果你使用
acks='all'
,则在发送回确认或错误之前,引导程序会一直等待,直到同步副本获得消息,因此性能会受到影响。万一min.insync.replica=1
,一旦消息被写入领导者,生产者就会得到一个响应。它应该比使用min.insync.replica=3
在本例中,生产者等待2个副本来获取所有消息,然后才能将消息视为已提交。您的结果意味着您的代理之间的延迟非常低。我相信,如果您在不同的数据中心/地区启动代理,您应该会看到差异。
zsohkypk2#
min.insync.replica
必须确认数据已成功接收才能成功写入的最小副本数。如果设置
min.insync.replica
到3和acks=all
但如果你设置acks=0
或者1
,但这样做时,如果引线失败,则可能会丢失数据。