在项目中,tomcat下搭建SolrCloud运行得好好的,今天应用程序报错,查询不了Solr的数据,发生原来是有1台机器的shard冗掉了,出现 Gone的状态。但其他Solr主机都正常,于是开始对故障主机进行问题排查:
1)机器上tomcat运行正常 —— 不是tomcat冗掉;
2)机器上的shard文件存在 —— 不是shard文件丢失;
3)重启机器上的tomcat服务,好了,问题来了,启动tomcat正常,没报错,但是tomcat就是启动不起来,查看日志后,报错了:ip地址和8080端口被占用了,排查后,又不是IP冲突问题;
4)这是查看SolrCloud发生Shard是recovery failed状态;
5)最后实在没有办法,重启整个集群,嘿,问题解决了,SolrCloud运行正常了。
最终还是没有找到根本原因,对于服务器可以短暂停止服务的业务程序还好,如果是不能停机的业务程序,这种做法显然不妥。