当前位置:主页 > 计算机电子书 > 程序设计 > Elasticsearch pdf电子书下载
高质量反馈 / 投诉

Elasticsearch源码解析与优化实战 PDF 高质量版

2023-08-13 16:15:00 类别:Elasticsearch

  • 更新:2023-08-13 16:15:00
  • 大小:192.7 MB
  • 出版:电子工业出版社
  • 作者:张超
  • 类别:Elasticsearch
  • 格式:PDF

网盘下载 本地下载

扫二维码手机浏览

  • 码农点评:《Elasticsearch源码解析与优化实战》是一本关于搜索引擎Elasticsearch的深入解析和优化的实践指南。作为一个开源的全文搜索引擎,Elasticsearch在大规模集群应用时常常面临各种问题,难以逐一分析和处理。这本书通过对Elasticsearch中重要模块的分析,揭示了其实现原理和机制,帮助读者深入理解搜索优化的关键点。除了解析源码,本书还提供了实践经验和示例,使得读者不仅能知其然,还能知其所以然。无论是对于有Elasticsearch使用经验的开发者,还是对搜索引擎感兴趣的技术人员,这本书都是一本不可多得的宝典。
  • 资源介绍

    给寻找技术文档的朋友们精选了Elasticsearch相关的 PDF电子书资料,由电子工业出版社出版,作者是张超,介绍了关于Elasticsearch、搜索优化方面,格式为PDF,资源大小192.7 MB,目前在Elasticsearch类资源综合评分为:8.6分。

    Elasticsearch源码解析与优化实战

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

    内容介绍

    这书详细介绍了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 优化日期搜索
    • 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.1.1 元数据字段
    • 20.1.2 索引映射参数
    • 20.2 优化措施
    • 20.2.1 禁用对你来说不需要的特性
    • 20.2.2 禁用doc values
    • 20.2.3 不要使用默认的动态字符串映射
    • 20.2.4 观察分片大小
    • 20.2.5 禁用_source
    • 20.2.6 使用best_compression
    • 20.2.7 Fource Merge
    • 20.2.8 Shrink Index
    • 20.2.9 数值类型长度够用就好
    • 20.2.10 使用索引排序来排列类似的文档
    • 20.2.11 在文档中以相同的顺序放置字段
    • 20.3 测试数据
    • 第21章 综合应用实践
    • 21.1 集群层
    • 21.1.1 规划集群规模
    • 21.1.2 单节点还是多节点部署
    • 21.1.3 移除节点
    • 21.1.4 独立部署主节点
    • 21.2 节点层
    • 21.2.1 控制线程池的队列大小
    • 21.2.2 为系统cache保留一半物理内存
    • 21.3 系统层
    • 21.3.1 关闭swap
    • 21.3.2 配置Linux OOM Killer
    • 21.3.3 优化内核参数
    • 21.4 索引层
    • 21.4.1 使用全局模板
    • 21.4.2 索引轮转
    • 21.4.3 避免热索引分片不均
    • 21.4.4 副本数选择
    • 21.4.5 Force Merge
    • 21.4.6 Shrink Index
    • 21.4.7 close索引
    • 21.4.8 延迟分配分片
    • 21.4.9 小心地使用fielddata
    • 21.5 客户端
    • 21.5.1 使用REST API而非Java API
    • 21.5.2 注意429状态码
    • 21.5.3 curl的HEAD请求
    • 21.5.4 了解你的搜索计划
    • 21.5.5 为读写请求设置比较长的超时时间
    • 21.6 读写
    • 21.6.1 避免搜索操作返回巨大的结果集
    • 21.6.2 避免索引巨大的文档
    • 21.6.3 避免使用多个_type
    • 21.6.4 避免使用_all字段
    • 21.6.5 避免将请求发送到同一个协调节点
    • 21.7 控制相

    以上就是本次关于书籍资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。


    下载地址

    下载地址:网盘下载

    学习心得

    10小时48分钟前回答

    使用ElasticSearch6.0快速实现全文搜索功能的示例代码

    本文不涉及ElasticSearch具体原理,只记录如何快速的导入mysql中的数据进行全文检索。 工作中需要实现一个搜索功能,并且导入现有数据库数据,组长推荐用ElasticSearch实现,网上翻一通教程,都是比较古老的文章了,无奈只能自己摸索,参考ES的文档,总算是把服务搭起来了,记录下,希望有同样需求的朋友可以少走弯路,能按照这篇教程快速的搭建一个可用的ElasticSearch服务。……

    23小时21分钟前回答

    ElasticSearch的完整安装教程

    ElasticSearch安装 下载ElasticSearch 官网地址: https://www.elastic.co/products/elasticsearch 本地下载:https://www.jb51.net/codes/579429.html 上传到ElasticSearch 可以使用第三方工具filezilla 解压elasticsearch-6.4.0.tar.gztar -zxvf elasticsearch-6.4.0.tar.gz [root@localhost elasticsearch]# tar -zxvf elasticsearch-6.4.0.tar.gz elasticsearch-6.4.0/... 进入elasticsearch目录查看文件夹内容 cd elasticsearch-6.4.0 [root@localhost elasticsearch]# cd elasticsearch-6.4……

    欢迎发表评论:

    联系我们

    邮件联系:3522365@qq.com

    QQ联系:3522365