商品详情
1. Apache ShardingSphere 是一款开源的分布式数据库生态系统,是Apache基金会的top项目,是目前加入到Apache基金会和CNCF的数据中间件开源产品。2. 本书作者是SphereEx的创始人和国际运营主管,也是Apache ShardingSphere官方成员。3. 本书英文原书在Amazon评星4.64. 通过阅读本书,你将会:■ 使用软件的可插拔架构组装和定制解决方案;■ 了解如何有效使用 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 ShardingSphereA 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 行业痛点 51.1.2 给 DBMS 带来新机会的行业新需求 61.2 DBA 角色的演变 6 1.2.1 压倒性的流量负载增长 71.2.2 用于前端服务的微服务架构 71.2.3 云原生导致原有的交付和部署方式不再可行 71.3 DBMS 的机会和发展方向 8 1.3.1 数据库安全 91.3.2 SQL、NoSQL 和 NewSQL 91.3.3 新架构 101.3.4 拥抱透明的分片中间件 101.3.5 数据库即服务 101.3.6 AI 数据库管理平台 111.3.7 数据库迁移 111.4 理解 ShardingSphere 12 1.4.1 连接 121.4.2 增强 131.4.3 可插拔 131.5 小结 16 第 2 章 ShardingSphere 架构概述 17 2.1 分布式数据库架构 18 2.2 基于 SQL 的负载均衡层 18 2.2.1 使用边车模式改善性能和可用性 202.2.2 改变云原生数据库开发路径的数据库网格 202.3 ShardingSphere 和数据库网格 22 2.4 使用 Database Plus 解决数据库痛点 22 2.5 基于 Database Plus 的架构 24 2.5.1 功能架构 242.5.2 客户端 252.5.3 特性层简介 262.6 部署架构 29 2.7 插件平台 30 2.7.1 微内核生态 302.7.2 简单下推引擎 322.7.3 SQL 联邦引擎 332.8 小结 34 第二部分 ShardingSphere架构、安装和配置 第 3 章 关键特性和应用场景分布式数据库精髓 37 3.1 分布式数据库解决方案 37 3.2 数据分片 38 3.2.1 垂直分片 383.2.2 水平分片 393.2.3 数据分片要点 403.2.4 为什么需要分片 443.3 SQL 优化 44 3.3.1 SQL 优化的定义 443.3.2 SQL 优化的价值 463.4 分布式事务及其特征 46 3.4.1 分布式事务 463.4.2 ShardingSphere 对事务的支持 473.4.3 事务模式比较 483.5 弹性伸缩简介 49 3.5.1 掌握弹性伸缩 493.5.2 弹性伸缩的实现流程 503.5.3 弹性伸缩要点 513.5.4 如何利用弹性伸缩解决实际问题 533.6 读写分离 54 3.6.1 读写分离的定义 543.6.2 读写分离功能的要点 553.6.3 工作原理 553.6.4 应用场景 553.7 小结 56 第 4 章 关键特性和应用场景性能和安全 57 4.1 理解高可用性 57 4.1.1 数据库高可用性 584.1.2 ShardingSphere 的高可用性 584.2 数据加解密 60 4.2.1 什么是数据加解密 604.2.2 关键组件 614.2.3 工作流程 624.2.4 应用场景 634.3 用户身份认证 66 4.3.1 DBMS 身份认证和分布式数据库身份认证 664.3.2 机制 674.3.3 工作流程 684.3.4 配置 684.4 SQL 授权 69 4.4.1 定义 SQL 授权 704.4.2 机制 704.4.3 规划 714.4.4 应用场景 714.5 数据库和应用的全链路监控 71 4.5.1 工作原理 714.5.2 一个全面的全链路监控解决方案 724.6 数据库网关 72 理解数据库网关 724.7 分布式 SQL 76 4.7.1 DistSQL 简介 764.7.2 应用场景 774.7.3 有关 DistSQL 的其他说明 794.7.4 对 ShardingSphere 的影响 804.8 理解集群模式 80 4.8.1 集群模式的定义 804.8.2 核心概念 814.8.3 与其他 ShardingSphere 特性的兼容性 814.9 集群管理 82 4.9.1 计算节点 824.9.2 存储节点 834.10 可观察性 83 4.10.1 什么是可观察性 844.10.2 将可观察性应用于 IT 系统 844.10.3 机制 844.10.4 应用场景 854.11 小结 86 第 5 章 探索 ShardingSphere适配器 87 5.1 技术需求 87 5.2 ShardingSphere_JDBC 和ShardingSphere_Proxy 之间的差别 88 5.3 ShardingSphere_JDBC 88 5.3.1 开发机制 895.3.2 适用场景和目标用户 905.3.3 部署和用户快速入门指南 915.4 ShardingSphere_Proxy 92 5.4.1 开发机制 925.4.2 适用场景和目标用户 935.4.3 部署和用户快速入门指南 945.4.4 从官网下载 945.5 混合部署架构简介 98 5.5.1 适用场景和目标用户 985.5.2 部署和用户快速入门指南 995.6 小结 101 第 6 章 安装并配置ShardingSphere_Proxy 102 6.1 技术需求 102 6.1.1 使用二进制包安装 1036.1.2 使用 Docker 安装 1036.2 分布式 SQL 简介 103 6.3 配置分片 104 6.3.1 DistSQL 1046.3.2 YAML 配置项 1066.4 配置读写分离 108 6.4.1 DistSQL 1086.4.2 YAML 配置项 1086.5 配置加密 109 6.5.1 DistSQL 1096.5.2 YAML 配置项 1106.6 配置影子库 111 6.6.1 DistSQL 1116.6.2 YAML 配置项 1126.7 配置模式 113 6.8 配置弹性伸缩 113 6.8.1 DistSQL 1146.8.2 YAML 配置项 1156.9 配置多特性和服务器属性 115 6.9.1 DistSQL 1156.9.2 YAML 配置项 1166.10 配置混合配置 116 6.10.1 DistSQL 1176.10.2 YAML 配置项 1176.11 配置服务器 118 6.11.1 授权 1186.11.2 事务 1196.11.3 特性配置 1196.12 小结 121 第 7 章 准备并配置 ShardingSphere_JDBC 122 7.1 技术需求 122 7.2 准备工作和配置方法 122 7.2.1 基本需求简介 1227.2.2 配置方法简介 1247.3 分片配置 124 7.3.1 Java 配置项 1247.3.2 YAML 配置项 1287.3.3 Spring Boot 配置项 1297.3.4 Spring 命名空间配置项 1317.4 读写分离配置 133 7.4.1 Java 配置项 1337.4.2 YAML 配置项 1347.4.3 Spring Boot 配置项 1357.4.4 Spring 命名空间配置项 1357.5 数据加密配置 136 7.5.1 Java 配置项 1367.5.2 YAML 配置项 1387.5.3 Spring Boot 配置项 1397.5.4 Spring 命名空间配置项 1407.6 影子库配置 141 7.6.1 Java 配置项 1417.6.2 YAML 配置项 1417.6.3 Spring Boot 配置示例 1427.6.4 Spring 命名空间配置项 1437.7 ShardingSphere 模式配置 143 7.7.1 Java 配置项 1447.7.2 YAML 配置项 1457.7.3 Spring Boot 配置项 1467.7.4 Spring 命名空间配置示例 1477.8 ShardingSphere_JDBC 属性配置 147 7.8.1 Java 配置项 1477.8.2 YAML 配置项 1487.8.3 Spring Boot 配置项 1497.8.4 Spring 命名空间配置项 1497.9 混合配置 149 7.9.1 分片、读写分离和集群配置项 1497.9.2 配置分片、加密和集群模式 1517.10 小结 153 第三部分 ShardingSphere 实例、性能和场景测试 第 8 章 Database Plus 及可插拔架构 157 8.1 技术需求 157 8.2 Database Plus 简介 158 8.2.1 ShardingSphere 追求的Database Plus 1588.2.2 连接打造数据库上层标准 1588.2.3 增强数据集计算增强引擎 1588.2.4 可插拔打造面向数据库的功能生态 1598.3 可插拔架构和 SPI 简介 159 8.3.1 ShardingSphere 的可插拔架构 1598.3.2 可扩展的算法和接口 1608.4 用户定义的功能和策略SQL 解析引擎、数据分片、读写分离和分布式事务 162 8.4.1 SQL 解析引擎 1628.4.2 数据分片 1638.4.3 读写分离 1658.4.4 分布式事务 1668.5 用户定义的功能和策略数据加密、用户身份认证、SQL 授权、影子库、分布式治理和伸缩 168 8.5.1 数据加密 1688.5.2 用户身份认证 1698.5.3 SQL 授权 1708.5.4 影子库 1728.5.5 分布式治理 1748.5.6 伸缩 1788.6 ShardingSphere_Proxy 的属性调整和应用场景 180 8.6.1 属性参数简介 1808.6.2 可扩展的算法 1838.7 小结 187 第 9 章 基准和性能测试系统简介 188 9.1 技术需求 188 9.2 基准测试 189 9.2.1 Sysbench 1899.2.2 BenchmarkSQL 1919.2.3 另一款有必要知道的基准测试工具 1939.2.4 数据库 1959.2.5 ShardingSphere 1969.3 性能测试 197 9.3.1 测试准备 1979.3.2 性能测试工作流程 1989.3.3 搭建环境 1999.3.4 压力测试 1999.3.5 结果报告分析 2019.4 小结 201 第 10 章 测试常见的应用场景 202 10.1 技术需求 202 10.2 测试分布式数据库场景 203 10.2.1 为测试分布式系统做准备 20310.2.2 部署和配置 20310.2.3 如何测试分布式系统 20610.2.4 分析 ShardingSphere_Proxy 分片特性 20910.3 基于场景的数据库安全测试 210 10.3.1 为测试数据库安全做准备 21110.3.2 部署和配置 21110.3.3 如何运行数据库安全测试 21210.3.4 报告分析 21310.4 全链路监控 214 10.4.1 为测试全链路监控做准备 21410.4.2 部署和配置 21410.4.3 如何执行全链路监控测试 21610.4.4 报告分析 21710.5 数据库网关 217 10.5.1 为测试数据库网关做准备 21710.5.2 部署和配置 21810.5.3 如何运行数据库网关测试 21910.5.4 报告分析 22110.6 小结 223 第 11 章 探索最佳的 ShardingSphere 使用案例 224 11.1 技术需求 224 11.2 推荐的分布式数据库解决方案 225 11.2.1 可供选择的两个客户端 22611.2.2 DBMS 22711.2.3 分片策略 22711.2.4 分布式事务 22911.2.5 高可用性和读写分离策略 23011.2.6 弹性伸缩 23111.2.7 分布式治理 23211.3 推荐的数据库安全解决方案 233 11.3.1 使用 ShardingSphere 实现数据库安全 23311.3.2 可供选择的两个客户端 23411.3.3 对 DBMS 应用数据安全解决方案 23411.3.4 数据加密/数据脱敏 23511.3.5 包含加密的数据迁移 23511.3.6 身份认证 23511.3.7 SQL 授权/权限检查 23611.4 推荐的全链路监控解决方案 236 11.4.1 流量网关 23711.4.2 应用性能监控和 Cyborg 23711.4.3 数据库保护 23811.5 推荐的数据库网关解决方案 238 11.5.1 概述与架构 23811.5.2 数据库管理 23911.5.3 读写分离 24111.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 弹性伸缩 24812.3 数据库安全 255 12.3.1 案例 3:ShardingSphere_Proxy ShardingSphere_JDBC PostgreSQL 数据加密 25512.3.2 案例 4:ShardingSphere_Proxy MySQL 数据脱敏 身份认证 权限检查 25812.4 全链路监控 262 案例 5:全链路监控 26212.5 数据库网关 269 12.5.1 部署架构 26912.5.2 示例配置 27012.5.3 推荐的云端/ 自有服务器 27112.5.4 启动并测试 27112.6 小结 275 附录 A 276
- 新华一城书集 (微信公众号认证)
- 上海新华书店官方微信书店
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...