SpringBoot集成es。连接es提示:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is NoNodeAvailableException[None of the configured nodes were available
docker 环境,目前安装的是 elasticsearch:6.5.4(之前按照了7.6.2版本,一直连接不上去,出现上面的错误)。
安装命令:
docker pull elasticsearch:6.5.4
docker run -d --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" elasticsearch:6.5.4
本人的环境只安装了 elasticsearch,没有安装kibana。
个人遭遇总结:
1、版本不匹配
spring-data-elasticsearch 的版本与 es的版本不匹配。
查看地址:
https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#reference
2、服务启动失败
docker 容器启动后,先用 网页版插件版本 的ElasticSearch Head(ElasticSearch-head-Chrome插件.crx 百度下)进行连接。
查看docker查看日志: docker logs 容器id或名称 -f(-f 可以滚动显示)。
ps: 如果 docker启动失败, 在本地找 docker 文件进行修改,目录 /var/lib/docker 。
使用 find ./ -name "*文件名称*" 找到修改的文件,还原修改的文件。
另外: docker版本安装后,config/*.yml配置文件,只有 如下配置(名称本人修改后)。
http.port: 9200/transport.tcp.port: 9300 这两个配置暂时没有添加。
添加后docker es 启动失败,提示“Caused by: org.elasticsearch.transport.BindTransportException: Failed to bind to [9300]”。
项目中配置文件要对应修改
cluster-name: docker-es
cluster-nodes: 主机ip:9300