当一个副本完成后,Kafka会创建一个新的副本

时间:2018-04-10 15:29:25

标签: apache-kafka

例如,我有3个Kafka经纪人和一个有3个副本的分区。我们假设3个副本均匀分布在每个代理上。 那么如果一个副本(追随者)失败,Kafka会怎么做? Kafka会创建一个新的副本,还是等待失败的副本回来?

此时,如果生产者继续向经纪人写入数据,会导致数据丢失吗?

1 个答案:

答案 0 :(得分:1)

  

那么,如果一个副本(追随者)失败,Kafka会怎么做? Kafka会创建一个新的副本,还是等待失败的副本回来?

它会等待一些经纪人回来,无论是原来丢失的还是其中一个。

  

此时,如果生产者继续向经纪人写入数据,会导致数据丢失吗?

不,复制不会拆分数据,而是在群集中复制数据。所以,只要有一个经纪人,那么你应该没问题。

请注意,您似乎在考虑分区,这是一种将数据拆分以实现可伸缩性的方法。复制是关于冗余的。最后要注意的是,如果您将Producer acks设置为all,那么它将需要完全复制,否则它将不接受任何消息。将min.insync.replicas设置为代理上的更高值时也可能发生这种情况。

TL; DR;使用默认设置,只要您至少有一台服务器正在运行,就应该没有问题。

相关问题