例如,我有3个Kafka代理和一个包含3个副本的分区。我们假设3个副本均匀分布在每个代理上。那么,如果一个副本(关注者)宕机,Kafka会怎么做呢?Kafka会创建一个新的副本,还是只是等待失败的副本回来?
而此时,如果producer继续向broker写入数据,会不会造成数据丢失?
发布于 2018-04-11 03:55:53
那么,如果一个副本(关注者)宕机,
会怎么做呢?Kafka会创建一个新的副本,还是只是等待失败的副本回来?
它将等待一些经纪人回来,无论是原来丢失的一个还是另一个。
,此时,如果producer继续向broker写入数据,是否会导致数据丢失?
不,复制不是拆分数据,而是跨群集复制数据。所以,只要只剩下一个经纪人,你就应该没问题。
请注意,您似乎正在考虑分区,这是一种将数据拆分出来以实现可伸缩性的方法。复制是关于冗余的。最后要注意的是,如果您将生产者acks设置为all,那么它将需要完全复制,否则它将不接受任何消息。当代理上的min.insync.replicas被设置为更高的值时,也可能发生这种情况。
在默认设置下,只要至少有一台服务器在运行,就不会有任何问题。
https://stackoverflow.com/questions/49757586
复制相似问题