Docker教程大全(二):安装Elasticsearch,注意与SpringBoot、SpringData或Jest/Rest Client的版本兼容问题
安装Elasticsearch肯定是要在Springboot项目中使用的,纯讨论安装Elasticsearch那简直是避重就轻,很容易再后期使用中发现版本兼容性问题,通常项目中操作ES有三种办法:
1.通过URLConnection直接调用ES。
2.Jest/Rest Client操作ES。
3.SpringData ElasticSearch操作ES。
本期主要讲解安装,关于使用方式我们后期有时间再单独讨论,首先大家针对自己项目中操作ES的方式,选择安装合适的版本,并不一定要装最新版本ES。
关于ES全部的版本查询,可以参看官方地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
一、如果你是第一种方式操作ES,你安装什么版本都行。
二、如果你是第二种方式Jest/Rest操作ES,先看项目Maven引入的Jest/Rest 版本,根据Jest/Rest 版本选择ES版本。
如果发现不合适又不想重装ES,可以替换Jest版本,具体Jest的版本查询,
官方地址:https://mvnrepository.com/artifact/io.searchbox/jest
如果你Jest版本是6.×版本,那你ES也要安装6.×版本,两者的大版本号要一致。
如果你是RestClient方式操作ES,请查看你引入rest-client的jar包版本号,亲测在springboot2.3.0版本开始默认为7.6.2的jar版本,如下。
稍早前的springboot版本所默认的Elasticsearch版本是6版本。
虽然,springboot版本、springboot默认引入的Elasticsearch的jar包版本、linux上安装的Elasticsearch版本均可自行更换,但总的来说,要确保三者兼容,以免后期出现问题。
三、如果你是第三种SpringData ElasticSearch操作ES方式,就要注意你springboot版本和maven引入的SpringData ElasticSearch版本。
具体版本对应关系参考官网地址:https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#preface.versions,截图如下:
比如,你项目springboot大版本是1.5版本,那你ES版本只能装2.4.0版本的,SpringData ElasticSearch需要引入2.1大版本才行,否则不兼容。
四,ES版本号确定了,下一步安装
由于我项springboot版本是2.2.7,所以我安装6.8.6版本ES。
1.下载es镜像,回车等待下载。
[root@localhost ~]# docker pull elasticsearch:6.8.6
2.查看镜像
[root@localhost ~]# docker images
确认没有问题,开始安装
3.启动镜像
[root@localhost ~]# docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9200:9200 -p 9300:9300 --name MyES001 c8b4938e5db2
由于我是本地虚拟机安装,为了节省内存限制了es内存大小: -e ES_JAVA_OPTS="-Xms512m -Xmx512m",如果是在服务器上,可以不考虑这个因素,直接docker run -d -p 9200:9200 -p 9300:9300 --name MyES001 c8b4938e5db2
MyES001 是我自定义的ES名称,c8b4938e5db2是镜像IMAGE ID
4.查看运行状态
[root@localhost ~]# docker ps -a
其中如图显示已启动状态,4分钟前启动。
5.测试,在浏览器输入:http://服务器ip地址:9200,显示es版本等信息,证明es安装且启动正常。
常见问题:
如果你和我一样是虚拟机安装,很容易遇到ES启动失败,查看docker容器日志报错:bootstrap checks failed。
原因:该vm.max_map_count内核设置需要至少设置为262144用于生产。根据自己的平台自行调整数值大小,官网目前给定最小262144:
解决办法:
切换到root用户修改配置sysctl.conf:vi /etc/sysctl.conf
添加配置:vm.max_map_count=262144
执行命令查看是否配置成功:sysctl -p
重启生效
如果还有问题,继续查看docker容器日志,根据报错信息排查解决。
对了,进入docker容器日志的命令是:
[root@localhost ~]# docker logs container-name/container-id(容器名字/id)
- Docker教程大全(四):删除重新安装Elasticsearch:7.6.2,注意与SpringBoot版本兼容问题
- SpringBoot 动态切换数据源,注意问题(JPA,Mybatis兼容)
- SpringBoot2.x集成Elasticsearch6.3.2,同时配置RestClient和TransportClient
- Docker教程大全(三):安装Mysql,并解决初次安装后连接报1251问题
- SpringBoot 版本与JDK 版本兼容问题
- SpringBoot整合ElasticSearch实现多版本的兼容
- springboot版本与spring cloud服务中间件版本兼容问题
- SpringBoot整合ElasticSearch实现多版本的兼容
- “Oracle.DataAccess.Client.OracleException: 提供程序与此版本的 Oracle 客户机不兼容”问题的解决方案
- SpringBoot整合ElasticSearch实现多版本的兼容
- SpringBoot1.5.2安装配置--1.5.2版本问题
- 记录问题:springboot中使用Mybatis-pagehelper分页插件遇到的版本兼容问题
- SpringBoot整合ES的三种方式(API、REST Client、Data-ES)
- windows10系统springboot2.0 tomcat版本不兼容问题及解决方法
- 如何jedis和spring-data-redis导包版本不兼容问题
- 记一次springboot集成elasticsearch的netty版本冲突问题
- Spring Boot整合ElasticSearch实现多版本兼容的方法详解
- SpringBoot整合elasticsearch-rest-high-level-client
- springboot 配置elasticsearch Java High Rest Client
- Elasticsearch之需要注意的问题(es和jdk版本)