3

我正在学习如何使用 Solrcloud 的新功能,并且我可以成功地设置一组 Zookeeper 和一组用于分片索引的 Solr 实例。我想调查故障如何影响我的设置。大多数情况下,除了一种情况外,它按预期工作。

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

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

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

为什么测试失败了?3 个 Zookeeper 加上每个分片的 Solr 应该可以让事情继续工作,是吗?

4

1 回答 1

2

Zk 要求其大多数节点保持正常运行。如果你把 3 个放在一台机器上,3 个放在另一台机器上,然后杀死 3 个,你就没有多数。

于 2012-11-16T13:10:58.383 回答