在接入es的过程中总结了一些出现的问题
1.NoNodeAvailableException[None of the configured nodes are available:
如果es集群设置了密码,但是客户端连接的时候没有设置用户名密码,就会报这个错误,如果需要密码认证连接es集群就需要rest客户端api,不能用transportclient,因为7.x之后取消了密码认证的PreBuiltXPackTransportClient 连接客户端
2.在restHighLevelClient执行时,报了一些错误,错误的原因都是因为jar包冲突
(1)java.lang.RuntimeException: Request cannot be executed; I/O reactor status: STOPPED
(2)java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString
,在发现这几种错误的时候,可以看下这几个jar包有没有冲突的情况
Httpclient
Httpcore
commons-codec
3.在使用api连接es集群时
9300是tcp通讯端口,集群间和transportclient都是用的9300;
9200是http协议暴露的RESTful服务的端口号,在使用restHighLevelClient时,需要使用9200端口