solr集群Server refused connection at: http://127.0.0.1:6060/solr/ego 注册zookeepr自动使用内网ip
引导:适用于各种注册服务,zookeeper和被注册的服务器不在同一ip上,产生的注册了127.0.0.1本地ip地址
在使用solr集群操作的时候,报了如下的错误
org.apache.solr.client.solrj.SolrServerException:
No live SolrServers available to handle this request:[http://127.0.0.1:9090/solr/ego, http://127.0.0.1:6060/solr/ego, http://127.0.0.1:8080/solr/ego, http://127.0.0.1:7070/solr/ego] Caused by: org.apache.solr.client.solrj.SolrServerException: Server refused connection at: http://127.0.0.1:6060/solr/ego
这个究竟就是什么呢?
跟我们要配置的访问solr集群的地址很像,但是solr的ip例如我的是169.254.18.14而且和zookeeper不在同一台服务器上
这也就是说,它们两个的ip地址不一致,而且它访问的还是127.0.0.1是肯定访问不到solr的!
我们可以在注册中心zookeeper里面进行查看 live_nodes 这个就是我们solr集群活着的节点注册的地址,
那么是从哪里注册的地址?肯定是在我们的solr服务器上注册的,那么应该传递过来的是solr的ip地址啊,
由此我们大家都可以想到些什么了,那就是我们的hosts文件里没有指定我们本机的外网地址。
具体解决操作如下:
1.首先查看你的主机名
vi /etc/sysconfig/network
如果里面有HOSTNAME=xxx 那么你就记住这个xxx主机名即可,如果没有的话,自行按照这个格式 添加一个 :HOSTNAME=xxx
2.修改HOSTS文件
vi /etc/hosts
大多数没修改过的人看到的应该是这个样子
我们在下面新添加一行,
本机的ip地址 主机名 例如我的: 169.254.18.14 arebirth
修改后的样子
让后我们重启所有solr集群,也就是重启tomcate,
然后重新查看zookeeper里面的live_nodes
问题解决!
参考:
https://blog.csdn.net/wwwjjj_3/article/details/79756066
a rebirth