我正在学习如何使用Solrcloud的新功能,我可以成功建立一个Zookeepers集合,以及一组用于分片索引的Solr实例。我想调查失败如何影响我的设置。大多数情况下,除了一个案例外,它按预期工作。
我使用了两台机器,每台机器上共启动了3个动物园管理员(总共6个)。我开始使用Solr实例一台机器(bosmac01),要求2个分片,然后启动第二个机器实例。然后我在第二台机器上开始了另外两个Solr实例(qasolrmaster)。 Solr管理员显示了我期望的配置,并且索引/查询工作正常:
Shard1:qasolrmaster:8900和bosmac01:8983 Shard2:qasolrmaster:8910和bosmac01:8920
我想测试一台机器崩溃会发生什么,所以我关闭了qasolrmaster。我预计,因为有3个Zookeepers仍然在运行,并且因为每个碎片仍然会有一个Solr实例连接,所以一切都会起作用。相反,剩下的两个Solr实例(在bosmac01上)一直试图重新连接到丢失的Zookeepers。管理员不会显示云图像,我无法添加文档或查询。如果我只是停止qasolrmaster上的所有Zookeepers但让机器运行,也会发生同样的事情。重新启动其中一个丢失的Zookeepers使事情恢复正常。
为什么测试失败?每个碎片的3个动物园管理员加上一个Solr应该可以让事情继续工作,是吗?
答案 0 :(得分:2)
Zk要求其大多数节点保持正常运行。如果你把3放在一台机器而3放在另一台机器上,那么杀3,你没有多数。