我已经将SolrCloud设置了一段时间,但它从来没有像我想象的那样工作。我担心的是高可用性。也许我没有理解某些东西,但在我看来,当SolrCloud中的某个节点发生故障时,其他节点仍应继续工作,对吧?
我的系统只有2个节点。分片的数量是1,即两个节点都类似于"镜像"或彼此的副本。我的目的是实现一个系统,如果一个节点发生故障,另一个节点继续运行。
自从我安装了云之后,我注意到如果两个节点中的任何一个关闭,我无法访问其他节点的Web UI,直到第二个节点为止也出现了。
为什么会这样?
顺便说一下,SolrCloud是版本4.4.0 1504776 - sarowe,Zookeeper也分布在2个节点上。这是因为Zookeeper聚集在两台机器上吗?答案 0 :(得分:2)
我相信Zookeeper就是问题所在。 Zookeeper集合必须是2N + 1个实例,并且容忍N个向下节点。如果只有2个,那么在整体中2 * 1 + 1 = 3个节点的配置。只允许一个向下节点,并且至少需要2个节点。因为你只有2个zk,如果它们中的任何一个下降,那么你的ZK系列也会下降。
为了实现高可用性,建议在3台不同的计算机上部署至少3个实例的独立Zookeeper集合,以消除SPoF。