电商项目——全文检索-ElasticSearch——第一章——中篇

电商项目——全文检索-ElasticSearch——第一章——中篇
电商项目——商城业务-商品上架——第二章——中篇
电商项目——商城业务-首页——第三章——中篇
电商项目——性能压测——第四章——中篇
电商项目——缓存——第五章——中篇
电商项目——商城业务-检索服务——第六章——中篇
电商项目——商城业务-异步——第七章——中篇
电商项目——商品详情——第八章——中篇
电商项目——认证服务——第九章——中篇
电商项目——购物车——第十章——中篇
电商项目——消息队列——第十一章——中篇
电商项目——订单服务——第十二章——中篇
电商项目——分布式事务——第十三章——中篇

1:简介

电商项目所有的检索功能都是用ElasticSearch构建起来的,全文检索的数据都是来自mysql,以后我们要把mysql的数据给ES存储一份,这样ES才可以将数据检索出来
lasticSearch——ElasticSearch和Kibana介绍

  • Elasticsearch是一个分布式的、RESTful的搜索和分析引擎,能够解决越来越多的用例。作为弹性堆栈的核心,它集中存储数据,以便您可以发现预期的数据和发现意外的数据。
    在这里插入图片描述

ElassticSearch的数据默认放在内存中(进行分析检索是非常快的)
在这里插入图片描述
在这里插入图片描述

2:Docker安装ES-存储和检索数据

Docker下安装Redis和Mysql,elasticsearch,Kibana,nginx——简洁篇
我在使用Vagrant中拉取ES镜像报如下错误

在这里插入图片描述
结果分析发现是 /var/lib/docker/overlay2/路径下的联合目录挂载文件系统,满了

& df -hl
#查看存储分布情况

在这里插入图片描述
以下的博客对我理解上面的问题有一定的帮助
docker的overlay2笔记
/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录
sda, sdb, sdc, sda1, sda2在Linux中都代表什么

最终的解决办法,我就只可重新安装一遍虚拟机

如下是在docker中查找镜像的位置和容器所在位置的命令
docker查看镜像仓库的位置
在这里插入图片描述
在这里插入图片描述

3:Docker安装Kibana-可视化检索数据

Docker下安装Redis和Mysql,elasticsearch,Kibana,nginx——简洁篇

4:入门-_cat

ES作为存储分析检索的一个引擎,我们先来体会它的存储功能,先来对它进行增删改查,在进行这个之前,我们先来体会一下_cat,我们说对所有的ES操作,ES都封装成了API发送请求进行,我们就使用postman进行如下测试
在这里插入图片描述

GET:http://192.168.56.10:9200/_cat/nodes
127.0.0.1 60 95 0 0.00 0.04 0.05 dilm * 5f28b7a757f5

GET:http://192.168.56.10:9200/_cat/health
1603399251 20:40:51 elasticsearch green 1 1 0 0 0 0 0 0 - 100.0%

GET:http://192.168.56.10:9200/_cat/master
08ZJHzRhQzipECG4ADz0mg 127.0.0.1 127.0.0.1 5f28b7a757f5

GET:http://192.168.56.10:9200/_cat/indices
#装好了kibnana,也会给es中存储一些kibana一些节点信息
green open .kibana_task_manager_1   1CyCbE1ETFOFC7se-K1T9Q 1 0 2 0 38.2kb 38.2kb
green open .apm-agent-configuration wQZkBe1bRgu7bJW28RDNhg 1 0 0 0   283b   283b
green open .kibana_1                qKYKuXT_S86Zdtlj6H3u8A 1 0 5 0 18.3kb 18.3kb

5:入门-put&post新增数据

在这里插入图片描述
在这里插入图片描述

#发送多次是一个更新操作
PUT:http://192.168.56.10:9200/customer/external/1
{
	"name":"zlj"
}

{
    "_index": "customer", #在哪个索引下(数据库)被创建
    "_type": "external",  #在哪个类型下(表)被创建
    "_id": "1",   #数据id
    "_version": 1,  #版本号(不断叠加过程)
    "result": "created",
    "_shards": {  # 分片(集群用到)
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 0,
    "_primary_term": 1
}

PUT:http://192.168.56.10:9200/customer/external/1
{
	"name":"zlj"
}

{
    "_index": "customer",#在哪个索引下(数据库)被创建
    "_type": "external", #在哪个类型下(表)被创建
    "_id": "1", #数据id
    "_version": 2, #版本号(不断叠加过程)
    "result": "updated",
    "_shards": {  # 分片(集群用到)
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 1,
    "_primary_term": 1
}

我们在使用_cat查找索引发现,customer被成功添加

GET:http://192.168.56.10:9200/_cat/indices

green  open .kibana_task_manager_1   1CyCbE1ETFOFC7se-K1T9Q 1 0 2 0 38.2kb 38.2kb
green  open .apm-agent-configuration wQZkBe1bRgu7bJW28RDNhg 1 0 0 0   283b   283b
green  open .kibana_1                qKYKuXT_S86Zdtlj6H3u8A 1 0 5 0 18.3kb 18.3kb
yellow open customer                 w3rhRLUsTWWx_lC_XN08LQ 1 1 1 0  3.3kb  3.3kb

在这里插入图片描述

#不指定id,会自动生成id。指定了id就会修改这个数据
POST:http://192.168.56.10:9200/customer/external
{
	"name":"zlj"
}

{
    "_index": "customer", #在哪个索引下(数据库)被创建
    "_type": "external", #在哪个类型下(表)被创建
    "_id": "sWomU3UBynfGwnzRowT3", #数据id
    "_version": 1,  #版本号(不断叠加过程)
    "result": "created", # 分片(集群用到)
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 3,
    "_primary_term": 1
}

6:入门-get查询数据&乐观锁字段

GET:http://192.168.56.10:9200/customer/external/1

{
    "_index": "customer",#在哪个索引下(数据库)被创建
    "_type": "external", #在哪个类型下(表)被创建
    "_id": "1", #数据id
    "_version": 3, #版本是3说明更新过两次,第一次创建是1
    "_seq_no": 2, #并发控制字段,每次更新就会+1,用来做乐观锁
    "_primary_term": 1, #同上,主分片重新分配,如重启就会发生变化
    "found": true,
    "_source": {
        "name": "zlj"
    }
}

比如A看到这个数据是1,B,C,D看到的也都是1,这个时候,A想把1改成2,B想把1改成3,C想把1改成4,D想把1改成5,这个时候如果B先到达es,A后到达es(A的本意是想把1改成2的,如果是别的值就算了),这个时候我们就可以使用乐观锁,

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值