项目中使用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

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐