* 分片和副本的工作方式
* 影響elasticsearch性能的因素
* 插件管理以及監控
# 索引工作原理
## 創建索引和刪除文檔

有2個索引P0和P1,RO和R1是這個數據的拷貝
node1是master節點,
當master收到數據更改P0的通知的時候,通過文檔ID,知道他會在node3上并且會并行的把數據通知給node3,node3把這個消息順便發給node2和node1,因為有自己的數據分片

當node1和node2處理成功完畢
NODE3最后會通知master節點,告訴他數據修改成功,master節點會告訴客戶端成功

## 更新文檔
客戶端發送請求給master節點,表示要更新數據P0,master數據定位到他是在NODE3上,他會把請求轉發給node3
會從node3中獲取這個文檔的json,并且修改里面的source,并且把這個文檔重新索引到這個節點中
如果node3成功更新這個文檔,node3會并行的把這個更改會發給其他節點,他們也會重新索引

如果其他的節點也成功的更改了數據,并且node3收到了其他所有的副本成功的請求,他會給客戶端發送更新成功的信息

## 查詢檢索
1. 檢索請求會發送到任何一個節點上
2. node3接受到這個請求,會廣播到這個集群中有這個數據副本的節點,
3. 他們都進行查詢,查詢到的話,就把結果返回給node3
4. 成功后會把結果返回給用戶

# 影響elasticsearch性能的因素
## 索引方面

查詢依賴分詞器分詞的結果,
分詞器沒選好會造成索引會變大,
詞表是分詞器通過分詞創建的詞庫,詞庫和文檔越匹配,這個搜索就會準確
segment數量,索引段的數量,索引是由多個segment組成的,索引不斷增加,segment也不斷增加,可以通過optimize來合并多個segment
optimize有多個參數

這個操作很超時很耗資源

## 分片數量

根據實際情況來決定分片數量
可以根據時間戳來建立索引
一般把舊的數據放到HDFS中
把經常用到的數據會放到elasticsearch中,可以做到備份和冷熱分離
單個分片的大小一般超過30G就會影響性能,但也要看情況
數據不大一般分片5個就行了
## 副本數量

副本的作用就是備份
## 物理層面

# 插件監控
通過插件可以看到各種狀態
通過插件可以做一些管理操作
通過插件可以做一些郵件告警
一般使用header和bigdesk插件
## bigdesk

green表示一切正常,yellow表示分片數據正常,副本數據有缺少,red表示分片數據有缺少
點cluster會顯示這個

深色表示主分片,其他顏色表示副本
## header
主要通過json數據展示
第一行就是我們創建的索引


然后里面有5個分片,01234,有深色框的是主分片,其他是副本,這個master是不做數據存儲的
查看索引

看索引的具體信息

查詢

## 預警服務watcher
* 集群監控狀態監控
* 內存使用率
* CPU使用率
* 文件目錄空間
* FieldData緩存使用
* 節點加入或者脫離集群
發送郵件設置

可以看這篇文章 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)
- 異步確保型
- 最大努力通知型
- 總結