电商项目高级篇-01 elasticsearch
1、linux下安装elasticsearch和可视化工具
将安装好jdk1.8和tomcat的centos7下安装elasticsearch
docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2
##docker下安装软件需要配置挂载。方便修改配置文件
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
给予最大权限
chmod -R 777 /mydata/elasticsearch/
设置挂载和最大内存占用启动
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
##docker下检查容器日志
docker logs 7f
日志是正常的
访问正常
安装kibana可视化工具
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://自己的虚拟机地址:9200 -p 5601:5601 \
-d kibana:7.4.2
出现这个界面代表安装成功
2、docker设置虚拟机开机启动和容器开机启动
我们每次启动虚拟机都要重启docker服务。甚至重启容器。很麻烦。所以设置自启动.
1、创建docker.service文件
touch /etc/systemd/system/docker.service
2、编写代码程序
[Unit]
Description=Docker Service
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/dockerd
Restart=on-failure
[Install]
WantedBy=multi-user.target
3、重载配置文件。使配置文件生效
systemctl daemon-reload
4、使服务开机即启动
systemctl enable docker.service
5、启动docker
systemctl start docker
6、验证docker.service是否启动
systemctl is-enabled docker.service
然后下一次虚拟机重启。docker服务自己就启动了
###如何实现容器也启动
两种方式:
1、通过restart来实现(比如kibana)
先删除容器。再重启
docker rm 容器id
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://自己的虚拟机地址:9200 -p 5601:5601 \
--restart=always -d kibana:7.4.2
再重启服务器已经成功了
2、可通过update 命令设置
无需删除容器
docker update --restart=always 容器名称(或者容器ID)
docker start 容器id
再重启服务器已经成功
可以看到kibana界面
3、elasticsearch的curd
3.1、新增、更新
post和put更新操作。put必须带id。post可以不用
同一个id第一次调用新增、第二次调用修改
不带id将会报错
post请求不带id
每一次会生成一个新的id,一直会新增
post请求带id。则相同id第一次新增、后面修改
3.2、查询
get请求
乐观锁修改
?if_seq_no=0&if_primary_term=1
必须先获取到最新版本号。如果出现并发。则第二个人无法获取到最新的版本号。则更新失败
当获取到最新的版本号时则更新ok