[套装书]深入理解Elasticsearch(原书第3版)+Spring Cloud微服务架构进阶(2册)

作者
(印度)波哈维·荻西特(Bharvi Dixit)朱荣鑫 张天 黄迪璇
丛书名
云计算与虚拟化技术丛书
出版社
机械工业出版社
ISBN
9782001101555
简要
简介
内容简介书籍计算机书籍 ---------------------------深入理解Elasticsearch(原书第3版)--------------------------- 本书在回顾Elasticsearch基础知识的同时,介绍了最新版本Elasticsearch 5的新功能,并对其中级和高级的功能(如查询、索引、搜索和修改数据)进行了详细说明。本书还将探索聚集、指标控制、分片、复制和聚类等概念,并通过实例展示监控管理模块、创建分析插件等。通过本书,读者可以对Elasticsearch 5有一个全面的认识并掌握其性能。 ---------------------------Spring Cloud微服务架构进阶--------------------------- 本书重点介绍微服务架构的Spring Cloud框架,在实践的基础上进行用法的拓展与相关组件的源码分析,包括:服务发现、负载均衡、断路、声明式HTTP调用客户端、网关、分布式配置中心、安全权限、消息总线等组件。本书适合Java开发人员,特别适合正在进行微服务化改造的开发人员、架构师,在改造过程中进行参考与进阶应用。
目录



---------------------------深入理解Elasticsearch(原书第3版)---------------------------


译者序
前言
致谢
作者简介
审阅者简介
第1章 回顾Elasticsearch与演进历史 1
1.1 Apache Lucene简介 1
1.1.1 更深入地了解Lucene索引 2
1.1.2 Elasticsearch概览 7
1.2 Elasticsearch 5.x介绍 8
1.2.1 Elasticsearch新特性简介 9
1.2.2 Elasticsearch的演进 10
1.2.3 2.x到5.x的变化 14
1.3 小结 16
第2章 查询DSL进阶 17
2.1 Lucene的新默认文本评分机制——BM25 17
2.1.1 理解精确率与召回率 18
2.1.2 回顾TF-IDF 18
2.1.3 BM25与TF-IDF有什么不同 21
2.2 查询DSL重构 22
2.3 为任务选择合适的查询 22
2.3.1 查询方式分类 22
2.3.2 使用示例 27
2.3.3 查询DSL的其他重要变化 36
2.4 查询改写 37
2.4.1 前缀查询示例 37
2.4.2 回到Apache Lucene 39
2.4.3 查询改写的属性 40
2.5 查询模板 43
2.5.1 引入查询模板 43
2.5.2 Mustache模板引擎 45
2.6 小结 49
第3章 不只是文本搜索 50
3.1 多匹配控制 50
3.2 多匹配类型 51
3.2.1 最佳字段匹配 51
3.2.2 跨字段匹配 54
3.2.3 最多字段匹配 55
3.2.4 短语匹配 56
3.2.5 带前缀的短语匹配 56
3.3 用函数得分查询控制分数 57
3.4 函数得分查询下的内嵌函数 58
3.4.1 weight函数 58
3.4.2 字段值因子函数 59
3.4.3 脚本评分函数 60
3.4.4 衰变函数——linear、exp和gauss 60
3.5 查询二次评分 61
3.6 二次评分查询的结构 62
3.7 Elasticsearch脚本 66
3.7.1 语法 66
3.7.2 Elasticsearch各版本中脚本的变化 66
3.8 新的默认脚本语言Painless 67
3.8.1 用Painless写脚本 67
3.8.2 示例 69
3.8.3 用脚本为结果排序 71
3.8.4 按多个字段排序 72
3.9 Lucene表达式 73
3.9.1 基础知识 73
3.9.2 一个例子 73
3.10 小结 75
第4章 数据建模与分析 76
4.1 Elasticsearch中的数据建模方法 76
4.2 管理Elasticsearch中的关系型数据 77
4.2.1 对象类型 77
4.2.2 嵌套文档 80
4.2.3 父子关系 82
4.2.4 其他可选方案 84
4.2.5 数据反范式的例子 84
4.3 用聚合做数据分析 85
4.3.1 Elasticsearch 5.0的快速聚合 85
4.3.2 重温聚合 86
4.3.3 一类新的聚合:矩阵聚合 93
4.4 小结 96
第5章 改善用户搜索体验 97
5.1 改正用户拼写错误 97
5.1.1 测试数据 98
5.1.2 深入技术细节 99
5.2 suggester 99
5.2.1 在_search端点下使用suggester 99
5.2.2 term suggester 103
5.2.3 phrase suggester 105
5.2.4 completion suggester 113
5.3 实现自己的自动完成功能 117
5.4 处理同义词 120
5.4.1 为同义词搜索准备settings 120
5.4.2 格式化同义词 121
5.4.3 同义词扩展与收缩 122
5.5 小结 123
第6章 分布式索引架构 125
6.1 配置示例的多节点集群 125
6.2 选择合适数量的分片和副本 127
6.2.1 分片和预分配 127
6.2.2 预分配的正面例子 128
6.2.3 多分片与多索引 128
6.3 路由 129
6.3.1 分片和数据 129
6.3.2 测试路由功能 130
6.3.3 在索引过程中使用路由 132
6.3.4 路由实战 132
6.3.5 查询 134
6.3.6 别名 136
6.3.7 多值路由 137
6.4 分片分配控制 137
6.4.1 部署意识 138
6.4.2 确定每个节点允许的总分片数 142
6.4.3 确定每台物理服务器允许的总分片数 143
6.5 查询执行偏好 146
6.5.1 preference参数 146
6.5.2 使用查询执行偏好的例子 148
6.6 将数据切分到多个路径中 148
6.7 索引与类型——创建索引的改进方法 148
6.8 小结 149
第7章 底层索引控制 150
7.1 改变Apache Lucene的评分方式 150
7.2 可用的相似度模型 151
7.3 为每个字段配置相似度模型 151
7.4 相似度模型配置 152
7.5 选择默认的相似度模型 153
7.6 选择合适的实现——store模块 156
7.7 存储类型 156
7.8 准实时、提交、更新及事务日志 158
7.8.1 索引更新及更新提交 159
7.8.2 更改默认的刷新时间 159
7.8.3 事务日志 160
7.8.4 实时读取 161
7.9 控制段合并 162
7.9.1 Elasticsearch合并策略的变化 163
7.9.2 配置tiered合并策略 163
7.9.3 合并调度 164
7.9.4 强制合并 165
7.10 理解Elasticsearch缓存 166
7.10.1 节点查询缓存 166
7.10.2 分片查询缓存 166
7.10.3 字段数据缓存 168
7.10.4 使用circuit breaker 168
7.11 小结 169
第8章 管理Elasticsearch 170
8.1 Elasticsearch的节点类型 170
8.1.1 数据节点 171
8.1.2 主节点 171
8.1.3 Ingest节点 171
8.1.4 部落节点 172
8.1.5 协调节点/客户端节点 172
8.2 发现和恢复模块 172
8.2.1 发现模块的配置 173
8.2.2 网关和恢复模块的配置 177
8.2.3 索引恢复API 179
8.3 使用对人类友好的Cat API 182
8.3.1 Cap API的基础知识 183
8.3.2 使用Cat API 184
8.4 备份 186
8.4.1 快照API 187
8.4.2 在文件系统中保存备份 187
8.4.3 在云中保存备份 189
8.5 快照恢复 193
8.6 小结 196
第9章 数据转换与联盟搜索 197
9.1 用ingest节点在Elasticsearch里对数据进行预处理 197
9.1.1 使用ingest管道 198
9.1.2 处理管道中的错误 202
9.1.3 使用ingest处理器 204
9.2 联盟搜索 208
9.2.1 测试集群 208
9.2.2 建立部落节点 209
9.2.3 通过部落节点读取数据 211
9.2.4 主节点级别的读操作 212
9.2.5 通过部落节点写入数据 213
9.2.6 主节点级别的写操作 213
9.2.7 处理索引冲突 213
9.2.8 屏蔽写操作 215
9.3 小结 215
第10章 提升性能 216
10.1 查询验证与分析器 216
10.1.1 在执行前就验证代价大的查询 217
10.1.2 获得详细查询执行报告的查询分析器 219
10.1.3 关于查询分析用途的思考 221
10.2 热点线程 222
10.2.1 热点线程的使用说明 222
10.2.2 热点线程API的响应 223
10.3 扩展Elasticsearch集群 224
10.3.1 垂直扩展 224
10.3.2 水平扩展 225
10.3.3 在高负载的场景下使用Elasticsearch 231
10.4 用shrink和rollover API高效管理基于时间的索引 242
10.4.1 shrink API 243
10.4.2  rollover API 244
10.5 小结 246
第11章 开发Elastisearch插件 247
11.1 创建Apache Maven的项目架构 247
11.1.1 了解基础知识 248
11.1.2 Maven Java项目的结构 248
11.2 创建自定义REST行为插件 252
11.2.1 设定 252
11.2.2 实现细节 252
11.2.3 测试阶段 256
11.2.4 检验REST行为插件是否工作正常 257
11.3 创建自定义分析插件 258
11.3.1 实现细节 258
11.3.2 测试自定义分析插件 262
11.4 小结 264
第12章 介绍Elastic Stack 5.0 265
12.1 Elastic Stack 5.0简介 265
12.2 介绍Logstash、Beats和Kibana 266
12.2.1 使用Logstash 266
12.2.2 引入Beats作为数据传输器 271
12.2.3 使用Kibana 273
12.3 小结 282



---------------------------Spring Cloud微服务架构进阶---------------------------


前言
第1章 微服务架构介绍1
1.1 微服务架构的出现1
1.1.1 单体应用架构1
1.1.2 SOA架构2
1.1.3 微服务架构3
1.2 微服务架构的流派5
1.3 云原生与微服务9
1.4 本章小结12
第2章 Spring Cloud总览13
2.1 Spring Cloud架构13
2.2 Spring Cloud特性16
2.2.1 Spring Cloud Context:应用上下文16
2.2.2 Spring Cloud Commons:公共抽象19
2.3 本章小结21
第3章 Spring Cloud的基础:Spring Boot22
3.1 Spring Boot简介22
3.2 构建一个微服务24
3.3 Spring Boot配置文件29
3.3.1 默认配置文件29
3.3.2 外部化配置29
3.3.3 YAML30
3.3.4 自动载入外部属性到Bean30
3.3.5 多Profile31
3.3.6 Starter32
3.3.7 自制一个Starter32
3.3.8 Actuator36
3.4 本章小结38
第4章 服务注册与发现:Eureka39
4.1 基础应用40
4.1.1 Eureka简介40
4.1.2 搭建Eureka服务注册中心40
4.1.3 搭建Eureka服务提供者42
4.1.4 搭建Eureka服务调用者43
4.1.5 Eureka服务注册和发现44
4.1.6 Consul的简单应用46
4.2 服务发现原理48
4.3 Eureka Client源码解析49
4.3.1 读取应用自身配置信息50
4.3.2 服务发现客户端52
4.3.3 拉取注册表信息56
4.3.4 服务注册61
4.3.5 初始化定时任务62
4.3.6 服务下线68
4.4 Eureka Server源码解析70
4.4.1 服务实例注册表70
4.4.2 服务注册72
4.4.3 接受服务心跳74
4.4.4 服务剔除75
4.4.5 服务下线77
4.4.6 集群同步78
4.4.7 获取注册表中服务实例信息82
4.5 进阶应用84
4.5.1 Eureka Instance和Client的元数据84
4.5.2 状态页和健康检查页端口设置85
4.5.3 区域与可用区85
4.5.4 高可用性服务注册中心86
4.6 本章小结87
第5章 声明式RESTful客户端:Spring Cloud OpenFeign88
5.1 基础应用88
5.1.1 微服务之间的交互88
5.1.2 OpenFeign简介89
5.1.3 代码示例89
5.2 源码分析91
5.2.1 核心组件与概念91
5.2.2 动态注册BeanDefinition92
5.2.3 实例初始化98
5.2.4 函数调用和网络请求107
5.3 进阶应用111
5.3.1 Decoder与Encoder的定制化111
5.3.2 请求/响应压缩112
5.4 本章小结113
第6章 断路器:Hystrix114
6.1 基础应用114
6.1.1 RestTemplate与Hystrix115
6.1.2 OpenFeign与Hystrix117
6.2 Hystrix原理118
6.2.1 服务雪崩118
6.2.2 断路器119
6.2.3 服务降级操作120
6.2.4 资源隔离121
6.2.5 Hystrix实现思路122
6.3 源码解析123
6.3.1 封装HystrixCommand123
6.3.2 HystrixCommand类结构129
6.3.3 异步回调执行命令129
6.3.4 异步执行命令和同步执行命令137
6.3.5 断路器逻辑137
6.3.6 资源隔离143
6.3.7 请求超时监控148
6.3.8 失败回滚逻辑150
6.4 进阶应用152
6.4.1 异步与异步回调执行命令152
6.4.2 继承HystrixCommand153
6.4.3 请求合并157
6.5 本章小结161
第7章 客户端负载均衡器:Spring Cloud Netflix Ribbon162
7.1 负载均衡162
7.2 基础应用163
7.3 源码分析165
7.3.1 配置和实例初始化165
7.3.2 与OpenFeign的集成167
7.3.3 负载均衡器LoadBalancerClient171
7.3.4 ILoadBalancer173
7.3.5 负载均衡策略实现177
7.4 进阶应用184
7.4.1 Ribbon API184
7.4.2 使用Netty发送网络请求185
7.4.3 只读数据库的负载均衡实现186
7.5 本章小结187
第8章 API网关:Spring Cloud Gateway189
8.1 Spring Cloud Gateway介绍189
8.2 基础应用190
8.2.1 用户服务191
8.2.2 网关服务192
8.2.3 客户端的访问195
8.3 源码解析195
8.3.1 初始化配置196
8.3.2 网关处理器197
8.3.3 路由定义定位器202
8.3.4 路由定位器205
8.3.5 路由断言208
8.3.6 网关过滤器216
8.3.7 全局过滤器227
8.3.8 API端点234
8.4 应用进阶235
8.4.1 限流机制235
8.4.2 熔断降级238
8.4.3 网关重试过滤器240
8.5 本章小结241
第9章 配置中心:Spring Cloud Config243
9.1 基础应用244
9.1.1 配置客户端244
9.1.2 配置仓库245
9.1.3 服务端246
9.1.4 配置验证248
9.1.5 配置动态更新249
9.2 源码解析250
9.2.1 配置服务器251
9.2.2 配置客户端261
9.3 应用进阶267
9.3.1 为Config Server配置多个repo268
9.3.2 客户端覆写远端的配置属性268
9.3.3 属性覆盖269
9.3.4 安全保护269
9.3.5 加密解密270
9.3.6 快速响应失败与重试机制272
9.4 本章小结272
第10章 消息驱动:Spring Cloud Stream274
10.1 消息队列274
10.2 基础应用276
10.2.1 声明和绑定通道276
10.2.2 自定义通道276
10.2.3 接收消息276
10.2.4 配置278
10.3 源码分析278
10.3.1 动态注册BeanDefinition279
10.3.2 绑定服务282
10.3.3 获取绑定器284
10.3.4 绑定生产者289
10.3.5 消息发送的流程291
10.3.6 StreamListener注解的处理293
10.3.7 绑定消费者298
10.3.8 消息的接收304
10.4 进阶应用306
10.4.1 Binder For RocketMQ306
10.4.2 多实例311
10.4.3 分区311
10.5 本章小结313
第11章 消息总线:Spring Cloud Bus314
11.1 基础应用314
11.1.1 配置服务器315
11.1.2 配置客户端316
11.1.3 结果验证316
11.2 源码解析318
11.2.1 事件的定义与事件监听器319
11.2.2 消息的订阅与发布326
11.2.3 控制端点328
11.3 应用进阶329
11.3.1 在自定义的包中注册事件329
11.3.2 自定义监听器330
11.3.3 事件的发起者331
11.4 本章小结332
第12章 认证与授权:Spring Cloud Security333
12.1 基础应用333
12.1.1 OAuth2简介334
12.1.2 JWT336
12.1.3 搭建授权服务器338
12.1.4 配置资源服务器341
12.1.5 访问受限资源344
12.2 整体架构346
12.3 源码解析348
12.3.1 安全上下文349
12.3.2 认证350
12.3.3 授权357
12.3.4 Spring Security中的过滤器与拦截器361
12.3.5 授权服务器372
12.3.6 资源服务器387
12.3.7 令牌中继机制394
12.4 进阶应用395
12.4.1 Spring Security定制395
12.4.2 OAuth2定制399
12.4.3 SSO单点登录403
12.5 本章小结406
第13章 服务链路追踪:Spring Cloud Sleuth407
13.1 链路监控组件简介407
13.2 基础应用410
13.2.1 特性411
13.2.2 项目准备411
13.2.3 Spring Cloud Sleuth独立实现414
13.2.4 集成Zipkin414
13.3 本章小结420



有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4