配置简况:
1、四个端口不同(8080-8083)的 tomcat9 实例;
2、四个与 tomcat9 对应的 solr-4.10.3 实例;
3、三个 zookeeper 实例(一主两备,保障高可用性)。
问题描述:
昨天配置 Solr 集群并成功展示后台 UI 页面后关机;今早开机启动四个 tomcat 实例,正常运行:
再访问 http://192.168.92.92:8080/solr 时报 503 错误:
网上搜了半天,各种说法都有,可惜没有切中要害,也可能是我遇到的情况稍显简单吧。按下不表。
根据报错信息,某类服务不可用,该服务器 Server 要么关闭了要么没有启动,显然这里的 Server 不是指的 tomcat 实例;再根据快照能够正常运行的情况看,昨天配置时应该提前启动了某个或某类 Server 提供的服务,而今天启动时忽略了。聪明如你的小伙伴们应该看出来了,最关键的动物园管理员 zookeeper 还没“上班”,这里的 Server 就是指的那三个 zookeeper 实例。于是先执行以下命令,再重启各 tomcat:
# /usr/local/solr-cloud/zookeeper1/bin/zkServer.sh start; \
> /usr/local/solr-cloud/zookeeper2/bin/zkServer.sh start; \
> /usr/local/solr-cloud/zookeeper3/bin/zkServer.sh start
终于启动成功:
小结:
Solr 集群的正确打开方式:
1、先启动各 zookeeper 实例(zookeeperX/bin/zkServer.sh start);
2、再启动各 tomcat 实例(亦即 solr 实例:tomcatX/bin/startup.sh);
Solr 集群的正确关闭方式:
1、先关闭各 solr 实例;(tomcatX/bin/shutdown.sh);
2、再关闭各 zookeeper 实例(zookeeperX/bin/zkServer.sh stop);