新書推薦:
《
无尽的海洋:美国海事探险与大众文化(1815—1860)
》
售價:NT$
454.0
《
治盗之道:清代盗律的古今之辨
》
售價:NT$
556.0
《
甲骨文丛书·剑桥世界暴力史(第一卷):史前和古代世界(套装全2册)
》
售價:NT$
959.0
《
甲骨文丛书·中华早期帝国:秦汉史的重估
》
售價:NT$
1367.0
《
欲望与家庭小说
》
售價:NT$
449.0
《
惜华年(全两册)
》
售價:NT$
320.0
《
甲骨文丛书·古代中国的军事文化
》
售價:NT$
454.0
《
中国王朝内争实录(套装全4册):从未见过的王朝内争编著史
》
售價:NT$
1112.0
|
編輯推薦: |
1. Apache ShardingSphere 是一款开源的分布式数据库生态系统,是Apache基金会的top项目,是目前加入到Apache基金会和CNCF的数据中间件开源产品。
2. 本书作者是SphereEx的创始人和国际运营主管,也是Apache ShardingSphere官方成员。
3. 本书英文原书在Amazon评星4.6
4. 通过阅读本书,你将会:
■ 使用软件的可插拔架构组装和定制解决方案;
■ 了解如何有效使用 Database Plus 理念;
■ 理解 ShardingSphere-JDBC 和 ShardingSphere-Proxy 之间的区别;
■ 掌握 ShardingSphere 的可插拔特性;
■ 探索传统数据库和分布式数据库的主流测试模型;
■ 执行从本地数据库到云数据库的迁移;
■ 重新配置你的数据基础设施,降低切换成本。
|
內容簡介: |
Apache ShardingSphere 是一个基于可插拔特性和云原生原则的新开源生态系统,将其用于分布式数据基础设施有助于增强数据库性能。本书首先简要概述数据库管理系统在生产环境中面临的主要挑战和数据库软件的内核概念;然后介绍使用分布式数据库解决方案、弹性伸缩、用户身份认证、SOL授权、全链路监控、数据库网关和 DistSOL的真实示例,全面讲解 ShardingSphere 的架构组件,以及如何利用它们配置和插入现有的基础架构并管理数据和应用;接着介绍生态系统的客户端 ShardingSphere-JDBC 和 ShardingSphere-Proxy,以及它们如何同时或独立地工作以满足实际需求;最后讲解如何定制可插拔架构以定义个性化的用户策略和无缝管理多个配置,并在各种场景下对数据库进行基准测试和性能测试。
|
關於作者: |
潘娟,SphereEx 联合创始人兼首席技术官(CTO)。她是 Apache 基金会会员和孵化器导师、Apache ShardingSphere 项目管理委员会(project management committee,PMC)成员、AWS 大侠、腾讯云 TVP。她曾负责京东数科数据库智能平台的设计与研发,现专注于分布式数据库和中间件生态及开源领域。她被评为中国开源先锋人物、OSCAR 尖峰开源人物、CSDN IT 领军人物、掘金引力榜年度新锐人物。 张亮,SphereEx 公司创始人兼首席执行官(CEO)。他是数据库领域实践者、Apache 基金会会员、微软 MVP、阿里云 MVP、腾讯云 TVP、华为云 MVP、Apache ShardingSphere 创始人和 PMC 主席。他拥有超过 10 年的数据库领域探索、实践经验,热爱开源,擅长分布式架构,推崇优雅代码。他曾在多个大型互联网公司任职架构、数据库团队负责人。他在 ICDE 发表过论文“Apache ShardingSphere—A Holistic and Pluggable Platform for Data Sharding”,是《未来架构:从服务化到云原生》的作者。 亚幸·西·塔伊布(Yacine Si Tayeb)博士是 Apache 基金会的贡献者,也是 Apache ShardingSphere 社区的关键贡献者和建设者。他出生于阿尔及利亚,幼年移居意大利,大学期间来到北京,目前已获得企业管理博士学位。出于对技术和创新的热情,他在中国的初创公司和科技领域深耕多年。他的职业生涯和研究领域受到科技和商业交汇的影响。作为一位发表了社会科学引文索引(Social Sciences Citation Index,SSCI)论文的学者,他对技术的浓厚兴趣引导他开展了关于公司治理和财务绩效对公司创新结果的影响的研究。在此期间,他的研究方向逐渐演变成关于 Apache ShardingSphere 大数据生态系统和开源社区的建设。
|
目錄:
|
第 一部分 ShardingSphere 简介
第 1 章 DBMS 和 DBA 的演变及ShardingSphere 扮演的角色 3
1.1 DBMS 的演变 4
1.1.1 行业痛点 5
1.1.2 给 DBMS 带来新机会的行业新需求 6
1.2 DBA 角色的演变 6
1.2.1 压倒性的流量负载增长 7
1.2.2 用于前端服务的微服务架构 7
1.2.3 云原生导致原有的交付和部署方式不再可行 7
1.3 DBMS 的机会和发展方向 8
1.3.1 数据库安全 9
1.3.2 SQL、NoSQL 和 NewSQL 9
1.3.3 新架构 10
1.3.4 拥抱透明的分片中间件 10
1.3.5 数据库即服务 10
1.3.6 AI 数据库管理平台 11
1.3.7 数据库迁移 11
1.4 理解 ShardingSphere 12
1.4.1 连接 12
1.4.2 增强 13
1.4.3 可插拔 13
1.5 小结 16
第 2 章 ShardingSphere 架构概述 17
2.1 分布式数据库架构 18
2.2 基于 SQL 的负载均衡层 18
2.2.1 使用边车模式改善性能和可用性 20
2.2.2 改变云原生数据库开发路径的数据库网格 20
2.3 ShardingSphere 和数据库网格 22
2.4 使用 Database Plus 解决数据库痛点 22
2.5 基于 Database Plus 的架构 24
2.5.1 功能架构 24
2.5.2 客户端 25
2.5.3 特性层简介 26
2.6 部署架构 29
2.7 插件平台 30
2.7.1 微内核生态 30
2.7.2 简单下推引擎 32
2.7.3 SQL 联邦引擎 33
2.8 小结 34
第二部分 ShardingSphere架构、安装和配置
第 3 章 关键特性和应用场景——分布式数据库精髓 37
3.1 分布式数据库解决方案 37
3.2 数据分片 38
3.2.1 垂直分片 38
3.2.2 水平分片 39
3.2.3 数据分片要点 40
3.2.4 为什么需要分片 44
3.3 SQL 优化 44
3.3.1 SQL 优化的定义 44
3.3.2 SQL 优化的价值 46
3.4 分布式事务及其特征 46
3.4.1 分布式事务 46
3.4.2 ShardingSphere 对事务的支持 47
3.4.3 事务模式比较 48
3.5 弹性伸缩简介 49
3.5.1 掌握弹性伸缩 49
3.5.2 弹性伸缩的实现流程 50
3.5.3 弹性伸缩要点 51
3.5.4 如何利用弹性伸缩解决实际问题 53
3.6 读写分离 54
3.6.1 读写分离的定义 54
3.6.2 读写分离功能的要点 55
3.6.3 工作原理 55
3.6.4 应用场景 55
3.7 小结 56
第 4 章 关键特性和应用场景——性能和安全 57
4.1 理解高可用性 57
4.1.1 数据库高可用性 58
4.1.2 ShardingSphere 的高可用性 58
4.2 数据加解密 60
4.2.1 什么是数据加解密 60
4.2.2 关键组件 61
4.2.3 工作流程 62
4.2.4 应用场景 63
4.3 用户身份认证 66
4.3.1 DBMS 身份认证和分布式数据库身份认证 66
4.3.2 机制 67
4.3.3 工作流程 68
4.3.4 配置 68
4.4 SQL 授权 69
4.4.1 定义 SQL 授权 70
4.4.2 机制 70
4.4.3 规划 71
4.4.4 应用场景 71
4.5 数据库和应用的全链路监控 71
4.5.1 工作原理 71
4.5.2 一个全面的全链路监控解决方案 72
4.6 数据库网关 72
理解数据库网关 72
4.7 分布式 SQL 76
4.7.1 DistSQL 简介 76
4.7.2 应用场景 77
4.7.3 有关 DistSQL 的其他说明 79
4.7.4 对 ShardingSphere 的影响 80
4.8 理解集群模式 80
4.8.1 集群模式的定义 80
4.8.2 核心概念 81
4.8.3 与其他 ShardingSphere 特性的兼容性 81
4.9 集群管理 82
4.9.1 计算节点 82
4.9.2 存储节点 83
4.10 可观察性 83
4.10.1 什么是可观察性 84
4.10.2 将可观察性应用于 IT 系统 84
4.10.3 机制 84
4.10.4 应用场景 85
4.11 小结 86
第 5 章 探索 ShardingSphere适配器 87
5.1 技术需求 87
5.2 ShardingSphere-JDBC 和ShardingSphere-Proxy 之间的差别 88
5.3 ShardingSphere-JDBC 88
5.3.1 开发机制 89
5.3.2 适用场景和目标用户 90
5.3.3 部署和用户快速入门指南 91
5.4 ShardingSphere-Proxy 92
5.4.1 开发机制 92
5.4.2 适用场景和目标用户 93
5.4.3 部署和用户快速入门指南 94
5.4.4 从官网下载 94
5.5 混合部署架构简介 98
5.5.1 适用场景和目标用户 98
5.5.2 部署和用户快速入门指南 99
5.6 小结 101
第 6 章 安装并配置ShardingSphere-Proxy 102
6.1 技术需求 102
6.1.1 使用二进制包安装 103
6.1.2 使用 Docker 安装 103
6.2 分布式 SQL 简介 103
6.3 配置分片 104
6.3.1 DistSQL 104
6.3.2 YAML 配置项 106
6.4 配置读写分离 108
6.4.1 DistSQL 108
6.4.2 YAML 配置项 108
6.5 配置加密 109
6.5.1 DistSQL 109
6.5.2 YAML 配置项 110
6.6 配置影子库 111
6.6.1 DistSQL 111
6.6.2 YAML 配置项 112
6.7 配置模式 113
6.8 配置弹性伸缩 113
6.8.1 DistSQL 114
6.8.2 YAML 配置项 115
6.9 配置多特性和服务器属性 115
6.9.1 DistSQL 115
6.9.2 YAML 配置项 116
6.10 配置混合配置 116
6.10.1 DistSQL 117
6.10.2 YAML 配置项 117
6.11 配置服务器 118
6.11.1 授权 118
6.11.2 事务 119
6.11.3 特性配置 119
6.12 小结 121
第 7 章 准备并配置 ShardingSphere-JDBC 122
7.1 技术需求 122
7.2 准备工作和配置方法 122
7.2.1 基本需求简介 122
7.2.2 配置方法简介 124
7.3 分片配置 124
7.3.1 Java 配置项 124
7.3.2 YAML 配置项 128
7.3.3 Spring Boot 配置项 129
7.3.4 Spring 命名空间配置项 131
7.4 读写分离配置 133
7.4.1 Java 配置项 133
7.4.2 YAML 配置项 134
7.4.3 Spring Boot 配置项 135
7.4.4 Spring 命名空间配置项 135
7.5 数据加密配置 136
7.5.1 Java 配置项 136
7.5.2 YAML 配置项 138
7.5.3 Spring Boot 配置项 139
7.5.4 Spring 命名空间配置项 140
7.6 影子库配置 141
7.6.1 Java 配置项 141
7.6.2 YAML 配置项 141
7.6.3 Spring Boot 配置示例 142
7.6.4 Spring 命名空间配置项 143
7.7 ShardingSphere 模式配置 143
7.7.1 Java 配置项 144
7.7.2 YAML 配置项 145
7.7.3 Spring Boot 配置项 146
7.7.4 Spring 命名空间配置示例 147
7.8 ShardingSphere-JDBC 属性配置 147
7.8.1 Java 配置项 147
7.8.2 YAML 配置项 148
7.8.3 Spring Boot 配置项 149
7.8.4 Spring 命名空间配置项 149
7.9 混合配置 149
7.9.1 分片、读写分离和集群配置项 149
7.9.2 配置分片、加密和集群模式 151
7.10 小结 153
第三部分 ShardingSphere 实例、性能和场景测试
第 8 章 Database Plus 及可插拔架构 157
8.1 技术需求 157
8.2 Database Plus 简介 158
8.2.1 ShardingSphere 追求的Database Plus 158
8.2.2 连接—打造数据库上层标准 158
8.2.3 增强—数据集计算增强引擎 158
8.2.4 可插拔—打造面向数据库的功能生态 159
8.3 可插拔架构和 SPI 简介 159
8.3.1 ShardingSphere 的可插拔架构 159
8.3.2 可扩展的算法和接口 160
8.4 用户定义的功能和策略——SQL 解析引擎、数据分片、读写分离和分布式事务 162
8.4.1 SQL 解析引擎 162
8.4.2 数据分片 163
8.4.3 读写分离 165
8.4.4 分布式事务 166
8.5 用户定义的功能和策略—数据加密、用户身份认证、SQL 授权、影子库、分布式治理和伸缩 168
8.5.1 数据加密 168
8.5.2 用户身份认证 169
8.5.3 SQL 授权 170
8.5.4 影子库 172
8.5.5 分布式治理 174
8.5.6 伸缩 178
8.6 ShardingSphere-Proxy 的属性调整和应用场景 180
8.6.1 属性参数简介 180
8.6.2 可扩展的算法 183
8.7 小结 187
第 9 章 基准和性能测试系统简介 188
9.1 技术需求 188
9.2 基准测试 189
9.2.1 Sysbench 189
9.2.2 BenchmarkSQL 191
9.2.3 另一款有必要知道的基准测试工具 193
9.2.4 数据库 195
9.2.5 ShardingSphere 196
9.3 性能测试 197
9.3.1 测试准备 197
9.3.2 性能测试工作流程 198
9.3.3 搭建环境 199
9.3.4 压力测试 199
9.3.5 结果报告分析 201
9.4 小结 201
第 10 章 测试常见的应用场景 202
10.1 技术需求 202
10.2 测试分布式数据库场景 203
10.2.1 为测试分布式系统做准备 203
10.2.2 部署和配置 203
10.2.3 如何测试分布式系统 206
10.2.4 分析 ShardingSphere-Proxy 分片特性 209
10.3 基于场景的数据库安全测试 210
10.3.1 为测试数据库安全做准备 211
10.3.2 部署和配置 211
10.3.3 如何运行数据库安全测试 212
10.3.4 报告分析 213
10.4 全链路监控 214
10.4.1 为测试全链路监控做准备 214
10.4.2 部署和配置 214
10.4.3 如何执行全链路监控测试 216
10.4.4 报告分析 217
10.5 数据库网关 217
10.5.1 为测试数据库网关做准备 217
10.5.2 部署和配置 218
10.5.3 如何运行数据库网关测试 219
10.5.4 报告分析 221
10.6 小结 223
第 11 章 探索最佳的 ShardingSphere 使用案例 224
11.1 技术需求 224
11.2 推荐的分布式数据库解决方案 225
11.2.1 可供选择的两个客户端 226
11.2.2 DBMS 227
11.2.3 分片策略 227
11.2.4 分布式事务 229
11.2.5 高可用性和读写分离策略 230
11.2.6 弹性伸缩 231
11.2.7 分布式治理 232
11.3 推荐的数据库安全解决方案 233
11.3.1 使用 ShardingSphere 实现数据库安全 233
11.3.2 可供选择的两个客户端 234
11.3.3 对 DBMS 应用数据安全解决方案 234
11.3.4 数据加密/数据脱敏 235
11.3.5 包含加密的数据迁移 235
11.3.6 身份认证 235
11.3.7 SQL 授权/权限检查 236
11.4 推荐的全链路监控解决方案 236
11.4.1 流量网关 237
11.4.2 应用性能监控和 Cyborg 237
11.4.3 数据库保护 238
11.5 推荐的数据库网关解决方案 238
11.5.1 概述与架构 238
11.5.2 数据库管理 239
11.5.3 读写分离 241
11.6 小结 242
第 12 章 将理论付诸实践 243
12.1 技术需求 243
12.2 分布式数据库解决方案 244
12.2.1 案例 1:ShardingSphere-Proxy ShardingSphere-JDBC PostgreSQL 分布式事务 集群模式 分片算法MOD 244
12.2.2 案例 2:ShardingSphere-Proxy MySQL 读写分离 集群模式 高可用性 分片算法 RANGE 弹性伸缩 248
12.3 数据库安全 255
12.3.1 案例 3:ShardingSphere-Proxy ShardingSphere-JDBC PostgreSQL 数据加密 255
12.3.2 案例 4:ShardingSphere-Proxy MySQL 数据脱敏 身份认证 权限检查 258
12.4 全链路监控 262
案例 5:全链路监控 262
12.5 数据库网关 269
12.5.1 部署架构 269
12.5.2 示例配置 270
12.5.3 推荐的云端/ 自有服务器 271
12.5.4 启动并测试 271
12.6 小结 275
附录 A 276
|
|