* 分片和副本的工作方式
* 影响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
- SQL
- 名词
- mysql
- 初识mysql
- 备份和恢复
- 存储引擎
- 数据表损坏和修复
- mysql工具
- 数据库操作
- 增
- 删
- 改
- 查
- 数据类型
- 整数类型
- 小数类型
- 日期时间类型
- 字符和文本型
- enum类型
- set类型
- 时间类型
- null与not null和null与空值''的区别
- 数据表操作
- 创建
- 索引
- 约束
- 表选项列表
- 表的其他语句
- 视图
- sql增删改查
- sql增
- sql删
- sql改
- sql查
- sql语句练习
- 连接查询和更新
- 常用sql语句集锦
- 函数
- 字符函数
- 数值运算符
- 比较运算符与函数
- 日期时间函数
- 信息函数
- 聚合函数
- 加密函数
- null函数
- 用户权限管理
- 用户管理
- 权限管理
- pdo
- 与pdo相关的几个类
- 连接数据库
- 使用
- pdo的错误处理
- pdo结果集对象
- pdo结果集对象常用方法
- pdo预处理
- 常用属性
- mysql编程
- 事务
- 语句块
- mysql中的变量
- 存储函数
- 存储过程
- 触发器
- mysql优化
- 存储引擎
- 字段类型
- 三范式和逆范式
- 索引
- 查询缓存
- limit分页优化
- 分区
- 介绍
- 分区算法
- list分区
- range范围
- Hash哈希
- key键值
- 分区管理
- 特别注意
- 分表
- 数据碎片与维护
- innodb表压缩
- 慢查询
- explain执行计划
- count和max,groupby优化
- 子查询优化
- mysql锁机制
- 介绍
- 演示
- 总结
- 乐观锁和悲观锁
- 扛得住的mysql
- 实例和故事
- 系统参数优化
- mysql体系结构
- mysql基准测试
- 索引
- mysql的复制
- win配置MySQL主从
- mysql5.7新特性
- 常见问题
- general log
- 忘记密码
- uodo log与redo log
- 事务隔离级别
- mysql8密码登录
- explain
- 高效的Tree表
- on delete cascade 总结
- mongod
- 简介
- 集合文档操作语句
- 增删改查
- 索引
- 数据导入和导出
- 主从复制
- php7操作mongod
- 权限管理
- redis
- redis简介
- 3.2版本配置文件
- 3.0版本配置文件
- 2.8版本配置文件
- 配置文件总结
- 外网连接
- 持久化
- RDB备份方式保存数据
- AOF备份方式保存数据
- 总结
- win安装redis和sentinel部署
- 事务
- Sentinel模式配置
- 分布式锁
- 管道
- php中redis代码
- 发布订阅
- slowlog
- Redis4.0
- scan和keys
- elasticsearch
- 配置说明
- 启动
- kibana
- kibana下载
- kibana配置文件
- kibana常用功能
- 常用术语
- Beats
- Beats简介
- Filebeat
- Packetbeat
- Logstash
- 配置
- elasticsearch架构
- es1.7
- head和bigdesk插件
- 插件大全
- 倒排索引
- 单模式下API增删改查
- mget获取多个文档
- 批量操作bulk
- 版本控制
- Mapping映射
- 基本查询
- Filter过滤
- 组合查询
- es配置文件
- es集群优化和管理
- logstash
- kibana
- es5.2
- 安装
- 冲突处理
- 数据备份
- 缺陷不足
- 集群管理api
- 分布式事务
- CAP理论
- BASE模型
- 两阶段提交(2PC)
- TCC (Try-Confirm-Cancle)
- 异步确保型
- 最大努力通知型
- 总结