💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
* 分片和副本的工作方式 * 影响elasticsearch性能的因素 * 插件管理以及监控 # 索引工作原理 ## 创建索引和删除文档 ![](https://box.kancloud.cn/439ec92810c052a97da61c22355c97c6_781x213.png) 有2个索引P0和P1,RO和R1是这个数据的拷贝 node1是master节点, 当master收到数据更改P0的通知的时候,通过文档ID,知道他会在node3上并且会并行的把数据通知给node3,node3把这个消息顺便发给node2和node1,因为有自己的数据分片 ![](https://box.kancloud.cn/2ae540598213ddf9bbdbdfa18095a70d_768x414.png) 当node1和node2处理成功完毕 NODE3最后会通知master节点,告诉他数据修改成功,master节点会告诉客户端成功 ![](https://box.kancloud.cn/93227d4fa501b17160d727c3d7520562_762x431.png) ## 更新文档 客户端发送请求给master节点,表示要更新数据P0,master数据定位到他是在NODE3上,他会把请求转发给node3 会从node3中获取这个文档的json,并且修改里面的source,并且把这个文档重新索引到这个节点中 如果node3成功更新这个文档,node3会并行的把这个更改会发给其他节点,他们也会重新索引 ![](https://box.kancloud.cn/b9f51cbf5a56c2c6b18bb58a7709210f_911x424.png) 如果其他的节点也成功的更改了数据,并且node3收到了其他所有的副本成功的请求,他会给客户端发送更新成功的信息 ![](https://box.kancloud.cn/2b39a25507f71e592027ff59bd16ac73_742x452.png) ## 查询检索 1. 检索请求会发送到任何一个节点上 2. node3接受到这个请求,会广播到这个集群中有这个数据副本的节点, 3. 他们都进行查询,查询到的话,就把结果返回给node3 4. 成功后会把结果返回给用户 ![](https://box.kancloud.cn/d39c9318d8f218369517c0292ebfb4b5_818x405.png) # 影响elasticsearch性能的因素 ## 索引方面 ![](https://box.kancloud.cn/f6aa87493f5ad98be2293d4ef5ae3824_422x336.png) 查询依赖分词器分词的结果, 分词器没选好会造成索引会变大, 词表是分词器通过分词创建的词库,词库和文档越匹配,这个搜索就会准确 segment数量,索引段的数量,索引是由多个segment组成的,索引不断增加,segment也不断增加,可以通过optimize来合并多个segment optimize有多个参数 ![](https://box.kancloud.cn/a895bc06a4b2af8eb58d33048940a602_1097x252.png) 这个操作很超时很耗资源 ![](https://box.kancloud.cn/cf16d8e3993a0b77bfeee3574eda7961_1206x69.png) ## 分片数量 ![](https://box.kancloud.cn/7a224dee74b0c733489100946c607cfc_378x108.png) 根据实际情况来决定分片数量 可以根据时间戳来建立索引 一般把旧的数据放到HDFS中 把经常用到的数据会放到elasticsearch中,可以做到备份和冷热分离 单个分片的大小一般超过30G就会影响性能,但也要看情况 数据不大一般分片5个就行了 ## 副本数量 ![](https://box.kancloud.cn/1b5da64bfd9ec68886d7662e1a0e4d10_423x57.png) 副本的作用就是备份 ## 物理层面 ![](https://box.kancloud.cn/944f08eeabb2644c6264a40c4e434f95_522x287.png) # 插件监控 通过插件可以看到各种状态 通过插件可以做一些管理操作 通过插件可以做一些邮件告警 一般使用header和bigdesk插件 ## bigdesk ![](https://box.kancloud.cn/b2beb502e8cdd27d4a87833af054ed7d_250x81.png) green表示一切正常,yellow表示分片数据正常,副本数据有缺少,red表示分片数据有缺少 点cluster会显示这个 ![](https://box.kancloud.cn/6c2221e6910bf6eac6b75fac759720d3_607x477.png) 深色表示主分片,其他颜色表示副本 ## header 主要通过json数据展示 第一行就是我们创建的索引 ![](https://box.kancloud.cn/a8daa4a462cab0425e03ab68149bea3d_756x199.png) ![](https://box.kancloud.cn/832976b597bad0ea74ca6cdfa5611f2e_503x400.png) 然后里面有5个分片,01234,有深色框的是主分片,其他是副本,这个master是不做数据存储的 查看索引 ![](https://box.kancloud.cn/4a2bc4d678bd0311a924717785c4ba43_356x514.png) 看索引的具体信息 ![](https://box.kancloud.cn/fd14978649d83059b7f3cece0454e590_1252x330.png) 查询 ![](https://box.kancloud.cn/42058c892e52bdb1631ff2e1ce94a8f1_364x577.png) ## 预警服务watcher * 集群监控状态监控 * 内存使用率 * CPU使用率 * 文件目录空间 * FieldData缓存使用 * 节点加入或者脱离集群 发送邮件设置 ![](https://box.kancloud.cn/8c3b8755ada07b849daec90079487c3b_785x238.png) 可以看这篇文章 https://www.tuicool.com/articles/bMJzMn