异常:NoNodeAvailableException
现象
1、启动时候出现
node null not part of the cluster Cluster [********], ignoring...
2、启动时正常,但是请求时出现
NoNodeAvailableException
原因
1、配置错误
使用Transport Client时要特别注意配置信息
(1)spring.data.elasticsearch.cluster-name
(2)spring.data.elasticsearch.cluster-nodes(有一种情况是访问es是外网地址,但是却在同一个内网环境中且内网访问不通,这时要关闭嗅探功能)
(3)索引名称
(4)TransportClient的访问端口是9300!9300!9300
(5)Settings settings = Settings.builder() .put("client.transport.sniff", false)//关闭嗅探,避免进入内网搜索
当ES服务器监听使用内网服务器IP而访问使用外网IP时,如果将client.transport.sniff设置为true,则在自动发现时会使用内网IP进行通信,导致无法连接到ES服务器;建议将参数 设置为false,然后直接使用addTransportAddress方法手动添加入口节点;
(6)TransportClient版本与ES版本不一致;
(7)InetAddress.getByName()方法中参数值,必须替换为您的ES实例基本信息界面中的内网地址(比如192.168.0.37)。