我正在尝试将Solr云与zookeeper一起使用。根据{{3}},我试图使用一个独立的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。
答案 0 :(得分:0)
我相信我弄清楚出了什么问题。我的程序中的错误逻辑错误地导致客户端认为没有zookeeper运行,因此他们启动了嵌入式zookeeper。一旦它启动,它就与(实际运行的)独立的动物园管理员进行通信,因此我有一个2-instance zookeeper集合运行。
关闭它之后,独立的动物园管理员保持不动,现在我的程序通过zoo_data了解它。重新启动时,它将连接到独立的zookeeper,但不会再次启动嵌入式的。这样做,所以我只有2个动物园管理员中有1个在运行,而且还不足以达到法定人数。所以我的程序只是转动轮子等待另一个动物园管理员上线,这种情况永远不会发生。
TL; DR:我的解决方法是修复检测动物园管理员是否可以连接的错误。