项目中使用ES查询报错:
在这里插入图片描述
报错主要信息:
org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available

我是刚刚接触elasticsearch,这个问题研究了小半天才解决,其实问题是这样的:

elasticsearch有两个端口:http_porttransport.tcp.port
在这里插入图片描述

这里先解释下这两个端口:

①http_port是ES节点与外部通讯使用的端口。它是http协议的RESTful接口(各种CRUD操作都是走的该端口),如下图:

左边是elasticsearch-head可视化插件操作ES,用的就是http_port;右边是通过页面查询ES集群信息,用的也是http_port

②transport.tcp.port是ES节点之间通讯使用的端口。它是tcp通讯端口,集群间和TCPclient都走的它。(java程序中使用ES时,在配置文件中要配置该端口
在这里插入图片描述

总结

程序内部调用ES集群时要使用transport.tcp.port端口,没改默认值,就是9300,改了就根据实际情况使用你修改后的端口
程序以外操作ES集群时要使用http_port端口,没改默认值,就是9200,改了就根据实际情况使用你修改后的端口

我的程序报错就是因为在程序中应该使用transport.tcp.port端口,而我用了http_port端口,把ES配置信息的端口改为transport.tcp.port问题就解决了。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐