我在 SolrCloud 遇到了一个有趣的情况。基本上,我不知道为什么,但是通常不在云中的 Solr 实例显示在 SolrCloud 页面上,并且live_nodes
在 Zookepeer 的路径中也可见。
以下是有关情况的详细信息:
我有一个 Solr 实例,在虚拟机上作为独立应用程序运行,位于删除机器上。virtual1
从现在开始,我们将调用它。
这是运行它的脚本:
java
-server
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseCompressedStrings
-Dcom.sun.management.jmxremote
-d64
-Xmx4096m
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=remotehost -jar start.jar
该实例在 8983 端口上运行,因此当您转到 时virtual1:8983
,您会看到 solr 的经典管理页面。其余的配置与示例 solr 相同,示例 solr 附带 solr 分布。
然后,在我的本地机器上(local
将从现在开始调用),我在端口上运行我的 zookeeper 服务器,2181
并且2182
然后为了将我的 solr 实例添加到云中,我只是在我的本地机器上运行一个实例,然后再运行两个实例virtual1
,启动它们的脚本如下:
我本地的 Solr 实例:
java -Dbootstrap_conf=true -DzkHost=zkhost:2181 -Djetty.port=8984 -jar start.jar
Solr 远程实例:
java -DzkHost=zkhost:2181 -Djetty.port=8985 -jar start.jar
java -DzkHost=zkhost:2182 -Djetty.port=8986 -jar start.jar
直到这里,Solr 或 Zookeeper 日志中都没有异常或错误。
当我检查virtual1:8985 and virtual1:8986
它们都在运行时,以及我本地的实例。
但是当我检查云时(来自 Solr 管理页面和 zookeeper CLI)。我只能在云中看到local:8983
和,而根本没有添加...奇怪的是,从上面的启动脚本中可以看到,它对 Zookeeper 服务器一无所知。virtual1:8983
virtual1:8985 and virtual1:8986
virtual1:8983
除了上述事实,我还尝试了另一件事。virtual2
在与 运行在同一台硬盘上的另一台虚拟机( )上virtual1
,我创建了 Solr 实例:
java -DzkHost=zkhost:2181 -Djetty.port=8985 -jar start.jar
java -DzkHost=zkhost:2182 -Djetty.port=8986 -jar start.jar
因此,在这种情况下,我将拥有实例virtual2:8985 and virtual2:8986
,它们应该在云中。但它没有发生......我只能看到virtual2:8983
,这在现实中并不存在。它只是显示了独立 Solr 的端口,该端口在virtual1
.
谁能解释为什么会这样?