Solrcloud如何处理主机故障



我正在学习如何使用Solrcloud的新功能,我可以成功地建立一个Zoobkeeper集合,以及一组用于分片索引的Solr实例。我想调查故障是如何影响我的设置的。除一例外,大多数情况下,它都如预期的那样起作用。

我用了两台机器,每台机器启动了3个动物园管理员(总共6个)。我启动了一台机器(bosmac01)的Solr实例,请求2个碎片,并启动了该机器的第二个实例。然后,我在第二台机器(qasolrmaster)上又启动了两个Solr实例。Solr管理员显示了我所期望的配置,并且索引/查询工作正常:

Shard1:qasolrmaster:8900和bosmac01:8983Shard2:qasolrmaster:8910和bosmac01:8920

我想测试如果一台机器崩溃会发生什么,所以我关闭了qasolrmaster。我预计,由于仍有3个Zoobkeeper在运行,并且每个碎片仍有一个Solr实例连接,所以一切都会正常工作。相反,剩下的两个Solr实例(在bosmac01上)一直试图与失踪的动物园管理员重新连接。管理员不会显示云图像,我也无法添加文档或查询。如果我只是停止qasolrmaster上的所有动物园管理员,但让机器继续运行,也会发生同样的事情。重新启动一名失踪的动物园管理员,一切恢复正常。

为什么测试失败了?3个动物园管理员加上每个碎片一个Solr应该可以让事情继续运转,是吗?

Zk需要其大部分节点保持运行。如果你在一台机器上加3,在另一台机器中加3,然后杀死3,你就没有多数。