《Elasticsearch源码解析与优化实战》| 每日读本书-阿里云开发者社区

开发者社区> 每日读本书> 正文

《Elasticsearch源码解析与优化实战》| 每日读本书

简介: 由Elasticsearch内核开发工程师编写,从源码和设计角度分析Elasticsearch的内部原理,为合理、高效地使用Elasticsearch提供理论指导,并为大规模应用和维护过程中的常见问题提供具体的优化措施和故障诊断方法。

编辑推荐

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

test
张超 著

内容提要

《Elasticsearch源码解析与优化实战》介绍了Elasticsearch的系统原理,旨在帮助读者了解其内部原理、设计思想,以及在生产环境中如何正确地部署、优化系统。系统原理分两方面介绍,一方面详细介绍主要流程,例如启动流程、选主流程、恢复流程;另一方面介绍各重要模块的实现,以及模块之间的关系,例如gateway模块、allocation模块等。本书的最后一部分介绍如何优化写入速度、搜索速度等大家关心的实际问题,并提供了一些诊断问题的方法和工具供读者参考。

《Elasticsearch源码解析与优化实战》适合对Elasticsearch进行改进的研发人员、平台运维人员,对分布式搜索感兴趣的朋友,以及在使用Elasticsearch过程中遇到问题的人们。

精彩导读

前言

我们可以在不关心原理的情况下使用Elasticsearch(以下简称ES),但要想用好ES,就必须熟知其内部原理。

为什么要阅读代码?在传统软件行业,技术文档非常丰富。当开展一个项目时,从需求分析,到概要设计、详细设计,每个步骤都有相应的文档,从项目的整体架构、技术方案选型,到流程图、类图,细化到每个接口及参数。在这种情况下,想要搞清楚系统原理,并不需要阅读代码,文档上什么都有。但是互联网产品迭代快,技术文档不全,想要搞清楚原理,只能阅读代码,相当于从代码中逆向理解设计思想。

通过分析源码,我们可以有以下收获:
理解设计思想 当我们面临要解决的问题或实现的目标时,往往有多种方案可以选择。无论表面上看起来多么简单的架构,其背后都经过了深思熟虑。思考一下为什么使用现在的方案?有没有更好的解决方案?
探究内部机制的原理 某个技术点是怎么实现的?
搞明白执行流程 某个过程是什么样的,都做了什么?有几步?先做什么,后做什么?

熟悉代码结构 如果需要进行二次开发,则给出代码入口和调用关系,有时候找到某个逻辑的代码实现要花很多时间。

学以致用 借鉴其设计理念,掌握其解决问题的方式和方法,将来面对类似的问题时可以参考。

本书结构
本书由四部分组成,第一部分为基础知识和环境准备(第1~2章);第二部分介绍ES的主要流程(第3~10章),包括集群启动流程、节点启动/关闭流程、选主流程、读写流程、搜索流程和索引恢复流程;第三部分主要介绍重要内部模块(第11~17章),包括gateway模块、allocation模块、Snapshot模块、Cluster模块、Transport模块和ThreadPool模块等;第四部分介绍优化和诊断方法(第18~22章),包括写入速度优化、搜索速度优化、磁盘使用量优化,以及在生产环境中的实际应用建议,第22章介绍常用的问题诊断方法,排查集群遇到的问题。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

技术人必读书目

官方博客
官网链接