万本电子书0元读

万本电子书0元读

顶部广告

Elasticsearch源码解析与优化实战电子书

Elasticsearch 是一个源的全文搜索引擎,很多用户对于大规模集群应用时遇到的各种问题难以分析处理,或者知其然而不知其所以然。本书分析 Elasticsearch 中重要模块及其实现原理和机制,让用户深理解相关重要配置项意义,应对系统故障时不再迷茫。另外,本书提供实际应用场景中一些常见问题的优化建议,这些建议都是作者经过大规模测试及应用验证过的。

售       价:¥

纸质售价:¥66.20购买纸书

1008人正在读 | 0人评论 6.7

作       者:张超

出  版  社:电子工业出版社

出版时间:2018-11-01

字       数:18.1万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书介绍了Elasticsearch的系统原理,旨在帮助读者了解其内部原理、设计思想,以及在生产环境中如何正确地部署、优化系统。系统原理分两方面介绍,一方面详细介绍主要流程,例如启动流程、选主流程、恢复流程;另一方面介绍各重要模块的实现,以及模块之间的关系,例如gateway模块、allocation模块等。本书的*后一部分介绍如何优化写速度、搜索速度等大家关心的实际问题,并提供了一些诊断问题的方法和工具供读者参考。<br/>【推荐语】<br/>Elasticsearch 是一个源的全文搜索引擎,很多用户对于大规模集群应用时遇到的各种问题难以分析处理,或者知其然而不知其所以然。本书分析 Elasticsearch 中重要模块及其实现原理和机制,让用户深理解相关重要配置项意义,应对系统故障时不再迷茫。另外,本书提供实际应用场景中一些常见问题的优化建议,这些建议都是作者经过大规模测试及应用验证过的。<br/>【作者】<br/>长期从事服务端和基础架构等研发工作,对搜索、分布式系统、高性能网络服务有浓厚的兴趣,喜欢探究技术本质,喜欢分析有深度的问题。目前就职于360企业安全集团基础大数据团队,负责平台内核研发工作。<br/>
目录展开

作者简介

前言

第1章 走进Elasticsearch

1.1 基本概念和原理

1.2 集群内部原理

1.3 客户端API

1.4 主要内部模块简介

第2章 准备编译和调试环境

2.1 编译源码

2.2 调试Elasticsearch

2.3 代码书签和断点组

第3章 集群启动流程

3.1 选举主节点

3.2 选举集群元信息

3.3 allocation过程

3.4 index recovery

3.5 集群启动日志

3.6 小结

第4章 节点的启动和关闭

4.1 启动流程做了什么

4.2 启动流程分析

4.3 节点关闭流程

4.4 关闭流程分析

4.5 分片读写过程中执行关闭

4.6 主节点被关闭

4.7 小结

第5章 选主流程

5.1 设计思想

5.2 为什么使用主从模式

5.3 选举算法

5.4 相关配置

5.5 流程概述

5.6 流程分析

5.7 节点失效检测

5.8 小结

第6章 数据模型

6.1 PacificA算法

6.2 ES的数据副本模型

6.3 Allocation IDs

6.4 Sequence IDs

6.5 _version

第7章 写流程

7.1 文档操作的定义

7.2 可选参数

7.3 Index/Bulk基本流程

7.4 Index/Bulk详细流程

7.5 I/O异常处理

7.6 系统特性

7.7 思考

第8章 GET流程

8.1 可选参数

8.2 GET基本流程

8.3 GET详细分析

8.4 MGET流程分析

8.5 思考

第9章 Search流程

9.1 索引和搜索

9.2 search type

9.3 分布式搜索过程

9.4 小结

第10章 索引恢复流程分析

10.1 相关配置

10.2 流程概述

10.3 主分片恢复流程

10.4 副分片恢复流程

10.5 recovery速度优化

10.6 如何保证副分片和主分片一致

10.7 recovery相关监控命令

10.8 小结

第11章 gateway模块分析

11.1 元数据

11.2 元数据的持久化

11.3 元数据的恢复

11.4 元数据恢复流程分析

11.5 思考

第12章 allocation模块分析

12.1 什么是allocation

12.2 触发时机

12.3 allocation模块结构概述

12.4 allocators

12.5 deciders

12.6 核心reroute实现

12.7 从gateway到allocation流程的转换

12.8 从allocation流程到recovery流程的转换

12.9 思考

第13章 Snapshot模块分析

13.1 仓库

13.2 快照

13.3 从快照恢复

13.4 创建快照的实现原理

13.5 删除快照实现原理

13.6 思考与总结

第14章 Cluster模块分析

14.1 集群状态

14.2 内部封装和实现

14.3 提交集群任务

14.4 集群任务的执行过程

14.5 集群状态的发布过程

14.6 应用集群状态

14.7 查看等待执行的集群任务

14.8 任务管理API

14.9 思考与总结

第15章 Transport模块分析

15.1 配置信息

15.2 Transport总体架构

15.3 REST解析和处理

15.4 RPC实现

15.5 思考与总结

第16章 ThreadPool模块分析

16.1 线程池类型

16.2 处理器设置

16.3 查看线程池

16.4 ES的线程池实现

16.5 其他线程池

16.6 思考与总结

第17章 Shrink原理分析

17.1 准备源索引

17.2 缩小索引

17.3 Shrink的工作原理

第18章 写入速度优化

18.1 translog flush间隔调整

18.2 索引刷新间隔refresh_interval

18.3 段合并优化

18.4 indexing buffer

18.5 使用bulk请求

18.6 磁盘间的任务均衡

18.7 节点间的任务均衡

18.8 索引过程调整和优化

18.9 参考配置

18.10 思考与总结

第19章 搜索速度的优化

19.1 为文件系统cache预留足够的内存

19.2 使用更快的硬件

19.3 文档模型

19.4 预索引数据

19.5 字段映射

19.6 避免使用脚本

19.7 优化日期搜索

19.8 为只读索引执行force-merge

19.9 预热全局序号(global ordinals)

19.10 execution hint

19.11 预热文件系统cache

19.12 转换查询表达式

19.13 调节搜索请求中的batched_reduce_size

19.14 使用近似聚合

19.15 深度优先还是广度优先

19.16 限制搜索请求的分片数

19.17 利用自适应副本选择(ARS)提升ES响应速度

第20章 磁盘使用量优化

20.1 预备知识

20.2 优化措施

20.3 测试数据

第21章 综合应用实践

21.1 集群层

21.2 节点层

21.3 系统层

21.4 索引层

21.5 客户端

21.6 读写

21.7 控制相关度

第22章 故障诊断

22.1 使用Profile API定位慢查询

22.2 使用Explain API分析未分配的分片(Unassigned Shards)

22.3 节点CPU使用率高

22.4 节点内存使用率高

22.5 Slow Logs

22.6 分析工具

22.7 小结

附录A 重大版本变化

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部