会员   密码 您忘记密码了吗?
1,574,159 本书已上架      购物流程 | 常见问题 | 联系我们 | 关于我们 | 用户协议

有店 App


当前分类

商品分类

浏览历史

当前位置: 首页 > 简体书 > Elasticsearch源碼解析與優化實戰
Elasticsearch源碼解析與優化實戰
上一张
下一张
prev next

Elasticsearch源碼解析與優化實戰

作者: 張超
出版社: 電子工業出版社
出版日期: 2018-11-01
商品库存: 点击查询库存
以上库存为海外库存属流动性。
可选择“空运”或“海运”配送,空运费每件商品是RM14。
配送时间:空运约8~12个工作天,海运约30个工作天。
(以上预计配送时间不包括出版社库存不足需调货及尚未出版的新品)
定价:   NT534.00
市场价格: RM96.00
本店售价: RM85.44
促销价: RM84.48
剩余时间: 请稍等, 正在载入中...
购买数量:
collect Add to cart Add booking
详细介绍 商品属性 商品标记
內容簡介

本書介紹了Elasticsearch的系統原理,旨在説明讀者瞭解其內部原理、設計思想,以及在生產環境中如何正確地部署、優化系統。系統原理分兩方面介紹,一方面詳細介紹主要流程,例如啟動流程、選主流程、恢復流程;另一方面介紹各重要模組的實現,以及模組之間的關係,例如gateway模組、allocation模組等。
 
本書的最後一部分介紹如何優化寫入速度、搜索速度等大家關心的實際問題,並提供了一些診斷問題的方法和工具供讀者參考。


作者介紹


目錄

第1章 走進Elasticsearch
1.1 基本概念和原理
1.1.1 索引結構
1.1.2 分片(shard)
1.1.3 動態更新索引
1.1.4 近即時搜索
1.1.5 段合併
1.2 集群內部原理
1.2.1 集群節點角色
1.2.2 集群健康狀態
1.2.3 集群狀態
1.2.4 集群擴容
1.3 用戶端API
1.4 主要內部模組簡介
1.4.1 模組結構
1.4.2 模組管理
第2章 準備編譯和調試環境
2.1 編譯源碼
2.1.1 準備JDK和Gradle
2.1.2 下載原始程式碼
2.1.3 編譯項目,打包
2.1.4 將工程導入IntelliJ IDEA
2.2 調試Elasticsearch
2.2.1 本地運行、調試專案
2.2.2 遠程調試
2.3 代碼書簽和中斷點組
第3章 集群啟動流程
3.1 選舉主節點
3.2 選舉集群元資訊
3.3 allocation過程
3.4 index recovery
3.5 集群開機記錄
3.6 小結
第4章 節點的啟動和關閉
4.1 啟動流程做了什麼
4.2 啟動流程分析
4.2.1 啟動腳本
4.2.2 解析命令列參數和設定檔
4.2.3 載入安全配置
4.2.4 檢查內部環境
4.2.5 檢測外部環境
4.2.6 啟動內部模組
4.2.7 啟動keepalive執行緒
4.3 節點關閉流程
4.4 關閉流程分析
4.5 分片讀寫過程中執行關閉
4.6 主節點被關閉
4.7 小結
第5章 選主流程
5.1 設計思想
5.2 為什麼使用主從模式
5.3 選舉演算法
5.4 相關配置
5.5 流程概述
5.6 流程分析
5.6.1 選舉臨時Master
5.6.2 投票與得票的實現
5.6.3 確立Master或加入集群
5.7 節點失效檢測
5.7.1 NodesFaultDetection事件處理
5.7.2 MasterFaultDetection事件處理
5.8 小結
第6章 資料模型
6.1 PacificA演算法
6.1.1 數據副本策略
6.1.2 配置管理
6.1.3 錯誤檢測
6.2 ES的資料副本模型
6.2.1 基本寫入模型
6.2.2 寫故障處理
6.2.3 基本讀取模型
6.2.4 讀故障處理
6.2.5 引申的含義
6.2.6 系統異常
6.3 Allocation IDs
6.3.1 安全地分配主分片
6.3.2 將分配標記為陳舊
6.2.3 一個例子
6.3.4 不會丟失全部
6.4 Sequence IDs
6.4.1 Primary Terms和Sequence Numbers
6.4.2 本地及全域檢查點
6.4.3 用於快速恢復(Recovery)
6.5 _version
第7章 寫流程
7.1 文檔操作的定義
7.2 可選參數
7.3 Index/Bulk基本流程
7.4 Index/Bulk詳細流程
7.4.1 協調節點流程
7.4.2 主分片節點流程
7.4.3 副分片節點流程
7.5 I/O異常處理
7.5.1 Engine關閉過程
7.5.2 Master的對應處理
7.5.3 異常流程總結
7.6 系統特性
7.7 思考
第8章 GET流程
8.1 可選參數
8.2 GET基本流程
8.3 GET詳細分析
8.3.1 協調節點
8.3.2 資料節點
8.4 MGET流程分析
8.5 思考
第9章 Search流程
9.1 索引和搜索
9.1.1 建立索引
9.1.2 執行搜索
9.2 search type
9.3 分散式搜索過程
9.3.1 協調節點流程
9.3.2 執行搜索的資料節點流程
9.4 小結
第10章 索引恢復流程分析
10.1 相關配置
10.2 流程概述
10.3 主分片恢復流程
10.4 副分片恢復流程
10.4.1 流程概述
10.4.2 synced flush機制
10.4.3 副分片節點處理過程
10.4.4 主分片節點處理過程
10.5 recovery速度優化
10.6 如何保證副分片和主分片一致
10.7 recovery相關監控命令
10.8 小結
第11章 gateway模組分析
11.1 中繼資料
11.2 中繼資料的持久化
11.3 中繼資料的恢復
11.4 中繼資料恢復流程分析
11.4.1 選舉集群級和索引級別的中繼資料
11.4.2 觸發allocation
11.5 思考
第12章 allocation模組分析
12.1 什麼是allocation
12.2 觸發時機
12.3 allocation模組結構概述
12.4 allocators
12.5 deciders
12.5.1 負載均衡類
12.5.2 併發控制類
12.5.3 條件限制類
12.6 核心reroute實現
12.6.1 集群啟動時reroute的觸發時機
12.6.2 流程分析
12.6.3 gatewayAllocator
12.6.4 shardsAllocator
12.7 從gateway到allocation流程的轉換
12.8 從allocation流程到recovery流程的轉換
12.9 思考
第13章 Snapshot模組分析
13.1 倉庫
13.2 快照
13.2.1 創建快照
13.2.2 獲取快照資訊
13.2.3 快照status
13.2.4 取消、刪除快照和恢復操作
13.3 從快照恢復
13.3.1 部分恢復
13.3.2 恢復過程中更改索引設置
13.3.3 監控恢復進度
13.4 創建快照的實現原理
13.4.1 Lucene檔案格式簡介
13.4.2 協調節點流程
13.4.3 主節點流程
13.4.4 資料節點流程
13.5 刪除快照實現原理
13.5.1 協調節點流程
13.5.2 主節點流程
13.6 思考與總結
第14章 Cluster模組分析
14.1 集群狀態
14.2 內部封裝和實現
14.2.1 MasterService
14.2.2 ClusterApplierService
14.2.3 執行緒池
14.3 提交集群任務
14.3.1 內部模組如何提交任務
14.3.2 任務提交過程實現
14.4 集群任務的執行過程
14.5 集群狀態的發佈過程
14.5.1 增量發佈的實現原理
14.5.2 二段提交總流程
14.5.3 發佈過程
14.5.4 提交過程
14.5.5 異常處理
14.6 應用集群狀態
14.7 查看等待執行的集群任務
14.8 任務管理API
14.8.1 列出運行中的任務
14.8.2 取消任務
14.9 思考與總結
第15章 Transport模組分析
15.1 配置資訊
15.1.1 傳輸模組配置
15.1.2 通用網路配置
15.2 Transport總體架構
15.2.1 網路層
15.2.2 服務層
15.3 REST解析和處理
15.4 RPC實現
15.4.1 RPC的註冊和映射
15.4.2 根據Action獲取處理類
15.5 思考與總結
第16章 ThreadPool模組分析
16.1 執行緒池類型
16.1.1 fixed
16.1.2 scaling
16.1.3 direct
16.1.4 fixed_auto_queue_size
16.2 處理器設置
16.3 查看執行緒池
16.3.1 cat thread pool
16.3.2 nodes info
16.3.3 nodes stats
16.3.4 nodes hot threads
16.3.5 Java的執行緒池結構
16.4 ES的執行緒池實現
16.4.1 ThreadPool類結構與初始化
16.4.2 fixed類型執行緒池構建過程
16.4.3 scaling類型執行緒池構建過程
16.4.4 direct類型執行緒池構建過程
16.4.5 fixed_auto_queue_size類型執行緒池構建過程
16.5 其他執行緒池
16.6 思考與總結
第17章 Shrink原理分析
17.1 準備源索引
17.2 縮小索引
17.3 Shrink的工作原理
17.3.1 創建新索引
17.3.2 創建硬連結
17.3.3 硬連結過程源碼分析
第18章 寫入速度優化
18.1 translog flush間隔調整
18.2 索引刷新間隔refresh_interval
18.3 段合併優化
18.4 indexing buffer
18.5 使用bulk請求
18.5.1 bulk執行緒池和佇列
18.5.2 併發執行bulk請求
18.6 磁片間的任務均衡
18.7 節點間的任務均衡
18.8 索引過程調整和優化
18.8.1 自動生成doc ID
18.8.2 調整欄位Mappings
18.8.3 調整_source欄位
18.8.4 禁用_all欄位
18.8.5 對Analyzed的欄位禁用Norms
18.8.6 index_options 設置
18.9 參考配置
18.10 思考與總結
第19章 搜索速度的優化
19.1 為檔案系統cache預留足夠的記憶體
19.2 使用更快的硬體
19.3 文檔模型
19.4 預索引資料
19.5 欄位映射
19.6 避免使用腳本
19.7 優化日期搜索