solrcloud 宕机集群异常

现象:solrcloud宕机后,无法查看集群状态,并且集群leader选举异常

重新选举Leader后客户端缓存的Leader信息未及时更新, 从而产生脑裂现象, 导致版本信息的冲突. 异常信息有:

org.apache.zookeeper.KeeperException$ConnectionLossException: 
KeeperErrorCode = ConnectionLoss for /overseer/queue
④ 导致ZooKeeper出现此问题的原因:

java.io.IOException: Packet len24538207 is out of range!
at org.apache.zookeeper.ClientCnxnSocket.readLength(ClientCnxnSocket.java:112)
at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:79)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
在ClientCnxnSocket.java的112行显示: packetLen=4096*1024, 也就是4MB. 说明客户端返回的配置文件的版本信息(包括日志信息)大小为4MB/条, 这在正常情况下是完全够用的(整个配置文件在10MB级别).
可一旦ZooKeeper出现异常, 将会产生大量的日志信息, 导致包大小超出范围的错误.

删除zookeeper中的队列

# zkCli.sh
> rmr /overseer/queue
> create /overseer/queue null

重启solrcloud恢复

posted @ 2021-04-19 17:01  Squidweber  阅读(120)  评论(0)    收藏  举报