我最近将solr 7.x + zookeeper 3.4.14转换为solr 8.3 + zk 3.5.6,并且根据我如何启动solr节点,我会获得同步异常。
我的设置使用3个zk节点和2个solr节点(我们将其称为A和B)。出现此问题的集合具有1个分片和2个副本。我注意到2种情况:(1)可以正常工作,(2)不能正常工作。
1)可行:我启动solr节点A,然后等待其副本被选为领导者(Solr界面“ Cloud”->“ Graph”中的“绿色”)-大约需要2分钟;然后才启动solr节点B。两个副本都处于活动状态,而A中的一个副本是领导者。
2)这不起作用:我启动solr节点A,并在为solr节点B加上星号之后几秒钟(即在'A'副本被选为领导者之前-在solr界面中仍为“ Down”)。在这种情况下,我得到以下异常:
ERROR (coreZkRegister-1-thread-2-processing-n:192.168.15.20:8986_solr x:alldata_shard1_replica_n1 c:alldata s:shard1 r:core_node3) [c:alldata s:shard1 r:core_node3 x:alldata_shard1_replica_n1] o.a.s.c.SyncStrategy Sync Failed:java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 99
似乎两个solr节点都很快启动,那么ZK不能选举一个作为领导者。 即使我反转了起始节点的顺序,此错误也只会出现在节点A的solr.log中。
以前有人看过吗?
我还有其他几个集合,这些集合没有显示此问题。 谢谢!