0

我正在尝试将 Solr 云与 Zookeeper 一起使用。根据solr 云页面,我正在尝试使用独立的 zookeeper 并让 solr 实例连接到它。这是我的问题:我可以连接到 Zookeeper 一次。solr 管理页面上的一切看起来都不错,并且“云”部分是准确的。如果我关闭客户端并重新启动,当我再次尝试访问 solr 管理页面时会收到 404。

在客户端或 Zookeeper 端的任何日志中都没有明显的错误。我有一个从 apache 站点下载的 vanilla zookeeper。我确保我所有的版本都是一样的。我的 zoo.cfg 很简单:

tickTime=2000
initLimit=10
syncLimit=5

CloudSolrServer用来将我的程序(正在运行 solr 实例)连接到 zookeeper。我已经阅读了很多关于客户端会话超时/终止的信息,但我猜想完全关闭并重新启动客户端会开始一个新的会话。

我正在使用 solr v4.1.0 和 zookeeper v3.4.5。

4

1 回答 1

0

我相信我知道出了什么问题。我的程序中的错误逻辑错误地导致客户认为没有 Zookeeper 在运行,因此他们启动了嵌入式 Zookeeper。一旦启动,它就会与(实际运行的)独立 zookeeper 通信,所以我运行了一个 2-instance zookeeper 集合。

在我关闭它之后,独立的 zookeeper 仍然启动,现在我的程序通过 zoo_data 知道了它。重新启动时,它将连接到独立的 Zookeeper,但不会再次启动嵌入式 Zookeeper。这使得我只有 2 个动物园管理员中的 1 个在运行,而且不足以达到法定人数。所以我的程序只是转动它的轮子,等待另一个动物园管理员上线,这永远不会发生。

TL;DR:我的解决方案是修复检测 zookeeper 是否可以连接的错误。

于 2013-09-24T19:46:16.167 回答