商品详情
书名:Apache ShardingSphere实战
定价:89.0
ISBN:9787121356544
作者:郑天民
版次:第1版
出版时间:2021-09
内容提要:
本书分为9章,主要介绍应用ShardingSphere实现分库分表的一些方法论和工程实践。通过对ShardingSphere的基本概念、应用方式和整体架构的介绍,帮助读者掌握ShardingSphere的设计思想和解决方案;然后从Sharding-JDBC和Sharding-Proxy两款核心组件出发,对分库分表、读写分离、分布式事务、数据脱敏、编排治理及代理服务器等核心功能进行详细阐述,并结合具体场景给出实例分析和实现过程。 本书面向Java服务器端开发人员,读者不需要有很深的技术水平,也不需要详细了解分库分表相关工具,但如果读者熟悉Java EE常见技术并掌握一定数据访问基本概念,则有助于读者更好地理解书中的内容。通过学习本书内容,读者将对ShardingSphere的基本架构、设计思想和应用方式有更加深入的了解,为后续的工作和学习奠定基础。同时,本书可以作为具备不同技术体系的开发人员的参考用书。希望本书能给读者的日常研发和管理工作带来启发和帮助。
作者简介:
郑天民:·日本足利工业大学信息工程学硕士,研究方向为人工智能在大规模调度系统中的应用,在国际三大科技文献检索系统上发表过多篇论文。·具有十余年软件行业从业经验,曾就职于多家大型上市公司及互联网电商、健康类独角兽公司,先后担任系统分析架构师、技术总监和CTO等职务。·讲授过十余门面向研发人员的技术和管理类培训课程,对架构设计和技术管理有丰富的经验和深入的理解。·阿里云MVP(Most Valuable Professional,*有价值专家)、腾讯云TVP(Tencent Cloud Valuable Professional,*具价值专家)、TGO(Top Geeks‘ Organization,鲲鹏会)会员。·著有《系统架构设计:程序员向架构师转型之路》《向技术管理者转型:软件开发人员跨行业、技术、管理的转型思维与实践》《微服务设计原理与架构》《微服务架构实战》《Spring响应式微服务》等书;译有《Spring响应式编程》和《Python深度学习入门:从零构建CNN和RNN》等书。
目录:
第 1 章 直面数据分库分表架构 ................................................................................................. 1
1.1 分库分表简介 ............................................................................................................ 1
1.1.1 分库分表的基本概念 ....................................................................................... 2
1.1.2 分库分表解决方案和代表性框架 ...................................................................... 7
1.2 实现分库分表 .......................................................................................................... 10
1.2.1 数据分片 ...................................................................................................... 10
1.2.2 读写分离 ...................................................................................................... 11
1.2.3 分布式事务 .................................................................................................. 12
1.3 初识 ShardingSphere ................................................................................................. 12
1.3.1 ShardingSphere 设计理念和核心组件 .............................................................. 14
1.3.2 ShardingSphere 解决方案 ............................................................................... 18
1.4 本书架构 ................................................................................................................. 21
1.5 本章小结 ................................................................................................................. 22
第 2 章 引入 ShardingSphere ................................................................................................. 23
2.1 ShardingSphere 的使用方式 ....................................................................................... 23
2.1.1 数据库和 JDBC 驱动集成 .............................................................................. 24
2.1.2 开发框架集成 ............................................................................................... 25
2.1.3 ORM 框架集成 ............................................................................................. 32
2.2 ShardingSphere 的配置机制 ....................................................................................... 34
2.2.1 行表达式 ...................................................................................................... 34
2.2.2 ShardingSphere 的核心配置 ............................................................................ 35
2.2.3 ShardingSphere 的配置方式 ............................................................................ 38
Apache ShardingSphere 实战
VI
2.2.4 ShardingSphere 的配置体系 ............................................................................ 43
2.3 本章小结 ................................................................................................................. 51
第 3 章 ShardingSphere 整体架构 .......................................................................................... 53
3.1 ShardingSphere 与 JDBC 规范 .................................................................................... 53
3.1.1 JDBC 规范的核心组件 .................................................................................. 54
3.1.2 ShardingSphere 与 JDBC 规范的兼容性 ........................................................... 59
3.2 ShardingSphere 与微内核架构模式 ............................................................................. 66
3.2.1 微内核架构模式设计原理与实现 .................................................................... 66
3.2.2 ShardingSphere 基于微内核架构模式实现扩展性 ............................................. 71
3.3 ShardingSphere 与 Spring 框架 ................................................................................... 78
3.3.1 基于命名空间集成 Spring 框架 ...................................................................... 78
3.3.2 基于自定义 starter 集成 Spring Boot 的实现过程 .............................................. 84
3.4 本章小结 ................................................................................................................. 89
第 4 章 ShardingSphere 数据分片 .......................................................................................... 90
4.1 数据分片的核心概念 ................................................................................................ 90
4.1.1 绑定表与广播表 ........................................................................................... 91
4.1.2 分片策略与分片算法 ..................................................................................... 92
4.1.3 强制路由与 Hint 机制 .................................................................................... 97
4.1.4 分布式主键 .................................................................................................. 99
4.1.5 连接模式 .................................................................................................... 109
4.1.6 分片引擎 .................................................................................................... 110
4.2 数据分片实例分析 .................................................................................................. 117
4.3 分片改造之实现分库 .............................................................................................. 122
4.3.1 初始化数据源 ............................................................................................. 122
4.3.2 设置分库策略 ............................................................................................. 123
4.3.3 设置绑定表与广播表 ................................................................................... 123
4.3.4 设置表分片规则 ......................................................................................... 124
4.4 分片改造之实现分表 .............................................................................................. 126
4.5 分片改造之实现分库+分表 ..................................................................................... 129
4.6 分片改造之实现强制路由 ....................................................................................... 133
4.6.1 HintManager ............................................................................................... 133
4.6.2 实现并配置强制路由分片算法 ..................................................................... 136
4.6.3 基于强制路由访问目标库表 ........................................................................ 137
目录
VII
4.7 本章小结 ............................................................................................................... 140
第 5 章 ShardingSphere 读写分离 ........................................................................................ 141
5.1 读写分离与 ShardingSphere ..................................................................................... 141
5.1.1 读写分离方案 ............................................................................................. 142
5.1.2 配置读写分离 ............................................................................................. 142
5.2 读写分离的基础用法 .............................................................................................. 143
5.2.1 读写分离的使用方法 ................................................................................... 143
5.2.2 MasterSlaveRouter 实现原理 ......................................................................... 145
5.3 读写分离集成数据分片 ........................................................................................... 152
5.3.1 读写分离集成数据分片的实现方法 .............................................................. 153
5.3.2 ShardingMasterSlaveRouter 实现原理 ............................................................ 154
5.4 读写分离集成强制路由 ........................................................................................... 156
5.5 本章小结 ............................................................................................................... 157
第 6 章 ShardingSphere 分布式事务 .................................................................................... 159
6.1 分布式事务的核心概念 ........................................................................................... 159
6.1.1 ShardingSphere 中的分布式事务 ................................................................... 160
6.1.2 XA 强一致性事务实现方案 ......................................................................... 162
6.1.3 BASE 柔性事务实现方案 ............................................................................ 166
6.2 使用 XA 实现两阶段提交事务 ................................................................................. 167
6.2.1 开发环境准备 ............................................................................................. 167
6.2.2 实现 XA 事务 ............................................................................................. 169
6.2.3 XA 事务实现原理 ....................................................................................... 176
6.3 使用 Seata 实现*终一致性事务 .............................................................................. 180
6.3.1 开发环境准备 ............................................................................................. 181
6.3.2 实现 BASE 事务 ......................................................................................... 182
6.3.3 BASE 事务实现原理 ................................................................................... 182
6.4 本章小结 ............................................................................................................... 188
第 7 章 ShardingSphere 数据脱敏 ........................................................................................ 189
7.1 数据脱敏的核心概念 .............................................................................................. 189
7.1.1 敏感数据存储方式 ...................................................................................... 190
7.1.2 敏感数据加解密过程 ................................................................................... 191
7.1.3 业务代码集成数据脱敏 ............................................................................... 191
7.2 数据脱敏的使用方法 .............................................................................................. 193
Apache ShardingSphere 实战
VIII
7.2.1 准备数据脱敏 ............................................................................................. 193
7.2.2 配置数据脱敏 ............................................................................................. 195
7.2.3 执行数据脱敏 ............................................................................................. 203
7.3 本章小结 ............................................................................................................... 204
第 8 章 ShardingSphere 编排治理 ........................................................................................ 205
8.1 编排治理解决方案 .................................................................................................. 205
8.1.1 配置中心 .................................................................................................... 206
8.1.2 注册中心 .................................................................................................... 207
8.1.3 链路跟踪 .................................................................................................... 208
8.2 配置中心的使用方法 .............................................................................................. 210
8.2.1 准备开发环境 ............................................................................................. 210
8.2.2 掌握配置项 ................................................................................................ 211
8.2.3 实现配置中心 ............................................................................................. 213
8.3 注册中心的使用方法 .............................................................................................. 217
8.3.1 通过注册中心构建编排治理服务 .................................................................. 217
8.3.2 使用注册中心实现数据访问熔断 .................................................................. 226
8.4 链路跟踪的使用方法 .............................................................................................. 230
8.4.1 初始化第三方 Tracer 类 ............................................................................... 230
8.4.2 通过 ShardingTracer 获取 Tracer 类 ............................................................... 231
8.4.3 基于 Hook 机制填充 Span ............................................................................ 233
8.5 本章小结 ............................................................................................................... 236
第 9 章 ShardingSphere 代理服务 ........................................................................................ 237
9.1 Sharding-Proxy 的使用方法 ..................................................................................... 237
9.1.1 安装和配置 ................................................................................................ 238
9.1.2 SQL 语句 ................................................................................................... 242
9.1.3 SCTL 语句 ................................................................................................. 245
9.1.4 代码集成 .................................................................................................... 246
9.2 Sharding-Proxy 架构解析 ......................................................................................... 246
9.2.1 Sharding-Proxy 整体架构 ............................................................................. 247
9.2.2 Sharding-Proxy 整合 Sharding-JDBC ............................................................. 256
9.3 本章小结 ............................................................................................................... 259
定价:89.0
ISBN:9787121356544
作者:郑天民
版次:第1版
出版时间:2021-09
内容提要:
本书分为9章,主要介绍应用ShardingSphere实现分库分表的一些方法论和工程实践。通过对ShardingSphere的基本概念、应用方式和整体架构的介绍,帮助读者掌握ShardingSphere的设计思想和解决方案;然后从Sharding-JDBC和Sharding-Proxy两款核心组件出发,对分库分表、读写分离、分布式事务、数据脱敏、编排治理及代理服务器等核心功能进行详细阐述,并结合具体场景给出实例分析和实现过程。 本书面向Java服务器端开发人员,读者不需要有很深的技术水平,也不需要详细了解分库分表相关工具,但如果读者熟悉Java EE常见技术并掌握一定数据访问基本概念,则有助于读者更好地理解书中的内容。通过学习本书内容,读者将对ShardingSphere的基本架构、设计思想和应用方式有更加深入的了解,为后续的工作和学习奠定基础。同时,本书可以作为具备不同技术体系的开发人员的参考用书。希望本书能给读者的日常研发和管理工作带来启发和帮助。
作者简介:
郑天民:·日本足利工业大学信息工程学硕士,研究方向为人工智能在大规模调度系统中的应用,在国际三大科技文献检索系统上发表过多篇论文。·具有十余年软件行业从业经验,曾就职于多家大型上市公司及互联网电商、健康类独角兽公司,先后担任系统分析架构师、技术总监和CTO等职务。·讲授过十余门面向研发人员的技术和管理类培训课程,对架构设计和技术管理有丰富的经验和深入的理解。·阿里云MVP(Most Valuable Professional,*有价值专家)、腾讯云TVP(Tencent Cloud Valuable Professional,*具价值专家)、TGO(Top Geeks‘ Organization,鲲鹏会)会员。·著有《系统架构设计:程序员向架构师转型之路》《向技术管理者转型:软件开发人员跨行业、技术、管理的转型思维与实践》《微服务设计原理与架构》《微服务架构实战》《Spring响应式微服务》等书;译有《Spring响应式编程》和《Python深度学习入门:从零构建CNN和RNN》等书。
目录:
第 1 章 直面数据分库分表架构 ................................................................................................. 1
1.1 分库分表简介 ............................................................................................................ 1
1.1.1 分库分表的基本概念 ....................................................................................... 2
1.1.2 分库分表解决方案和代表性框架 ...................................................................... 7
1.2 实现分库分表 .......................................................................................................... 10
1.2.1 数据分片 ...................................................................................................... 10
1.2.2 读写分离 ...................................................................................................... 11
1.2.3 分布式事务 .................................................................................................. 12
1.3 初识 ShardingSphere ................................................................................................. 12
1.3.1 ShardingSphere 设计理念和核心组件 .............................................................. 14
1.3.2 ShardingSphere 解决方案 ............................................................................... 18
1.4 本书架构 ................................................................................................................. 21
1.5 本章小结 ................................................................................................................. 22
第 2 章 引入 ShardingSphere ................................................................................................. 23
2.1 ShardingSphere 的使用方式 ....................................................................................... 23
2.1.1 数据库和 JDBC 驱动集成 .............................................................................. 24
2.1.2 开发框架集成 ............................................................................................... 25
2.1.3 ORM 框架集成 ............................................................................................. 32
2.2 ShardingSphere 的配置机制 ....................................................................................... 34
2.2.1 行表达式 ...................................................................................................... 34
2.2.2 ShardingSphere 的核心配置 ............................................................................ 35
2.2.3 ShardingSphere 的配置方式 ............................................................................ 38
Apache ShardingSphere 实战
VI
2.2.4 ShardingSphere 的配置体系 ............................................................................ 43
2.3 本章小结 ................................................................................................................. 51
第 3 章 ShardingSphere 整体架构 .......................................................................................... 53
3.1 ShardingSphere 与 JDBC 规范 .................................................................................... 53
3.1.1 JDBC 规范的核心组件 .................................................................................. 54
3.1.2 ShardingSphere 与 JDBC 规范的兼容性 ........................................................... 59
3.2 ShardingSphere 与微内核架构模式 ............................................................................. 66
3.2.1 微内核架构模式设计原理与实现 .................................................................... 66
3.2.2 ShardingSphere 基于微内核架构模式实现扩展性 ............................................. 71
3.3 ShardingSphere 与 Spring 框架 ................................................................................... 78
3.3.1 基于命名空间集成 Spring 框架 ...................................................................... 78
3.3.2 基于自定义 starter 集成 Spring Boot 的实现过程 .............................................. 84
3.4 本章小结 ................................................................................................................. 89
第 4 章 ShardingSphere 数据分片 .......................................................................................... 90
4.1 数据分片的核心概念 ................................................................................................ 90
4.1.1 绑定表与广播表 ........................................................................................... 91
4.1.2 分片策略与分片算法 ..................................................................................... 92
4.1.3 强制路由与 Hint 机制 .................................................................................... 97
4.1.4 分布式主键 .................................................................................................. 99
4.1.5 连接模式 .................................................................................................... 109
4.1.6 分片引擎 .................................................................................................... 110
4.2 数据分片实例分析 .................................................................................................. 117
4.3 分片改造之实现分库 .............................................................................................. 122
4.3.1 初始化数据源 ............................................................................................. 122
4.3.2 设置分库策略 ............................................................................................. 123
4.3.3 设置绑定表与广播表 ................................................................................... 123
4.3.4 设置表分片规则 ......................................................................................... 124
4.4 分片改造之实现分表 .............................................................................................. 126
4.5 分片改造之实现分库+分表 ..................................................................................... 129
4.6 分片改造之实现强制路由 ....................................................................................... 133
4.6.1 HintManager ............................................................................................... 133
4.6.2 实现并配置强制路由分片算法 ..................................................................... 136
4.6.3 基于强制路由访问目标库表 ........................................................................ 137
目录
VII
4.7 本章小结 ............................................................................................................... 140
第 5 章 ShardingSphere 读写分离 ........................................................................................ 141
5.1 读写分离与 ShardingSphere ..................................................................................... 141
5.1.1 读写分离方案 ............................................................................................. 142
5.1.2 配置读写分离 ............................................................................................. 142
5.2 读写分离的基础用法 .............................................................................................. 143
5.2.1 读写分离的使用方法 ................................................................................... 143
5.2.2 MasterSlaveRouter 实现原理 ......................................................................... 145
5.3 读写分离集成数据分片 ........................................................................................... 152
5.3.1 读写分离集成数据分片的实现方法 .............................................................. 153
5.3.2 ShardingMasterSlaveRouter 实现原理 ............................................................ 154
5.4 读写分离集成强制路由 ........................................................................................... 156
5.5 本章小结 ............................................................................................................... 157
第 6 章 ShardingSphere 分布式事务 .................................................................................... 159
6.1 分布式事务的核心概念 ........................................................................................... 159
6.1.1 ShardingSphere 中的分布式事务 ................................................................... 160
6.1.2 XA 强一致性事务实现方案 ......................................................................... 162
6.1.3 BASE 柔性事务实现方案 ............................................................................ 166
6.2 使用 XA 实现两阶段提交事务 ................................................................................. 167
6.2.1 开发环境准备 ............................................................................................. 167
6.2.2 实现 XA 事务 ............................................................................................. 169
6.2.3 XA 事务实现原理 ....................................................................................... 176
6.3 使用 Seata 实现*终一致性事务 .............................................................................. 180
6.3.1 开发环境准备 ............................................................................................. 181
6.3.2 实现 BASE 事务 ......................................................................................... 182
6.3.3 BASE 事务实现原理 ................................................................................... 182
6.4 本章小结 ............................................................................................................... 188
第 7 章 ShardingSphere 数据脱敏 ........................................................................................ 189
7.1 数据脱敏的核心概念 .............................................................................................. 189
7.1.1 敏感数据存储方式 ...................................................................................... 190
7.1.2 敏感数据加解密过程 ................................................................................... 191
7.1.3 业务代码集成数据脱敏 ............................................................................... 191
7.2 数据脱敏的使用方法 .............................................................................................. 193
Apache ShardingSphere 实战
VIII
7.2.1 准备数据脱敏 ............................................................................................. 193
7.2.2 配置数据脱敏 ............................................................................................. 195
7.2.3 执行数据脱敏 ............................................................................................. 203
7.3 本章小结 ............................................................................................................... 204
第 8 章 ShardingSphere 编排治理 ........................................................................................ 205
8.1 编排治理解决方案 .................................................................................................. 205
8.1.1 配置中心 .................................................................................................... 206
8.1.2 注册中心 .................................................................................................... 207
8.1.3 链路跟踪 .................................................................................................... 208
8.2 配置中心的使用方法 .............................................................................................. 210
8.2.1 准备开发环境 ............................................................................................. 210
8.2.2 掌握配置项 ................................................................................................ 211
8.2.3 实现配置中心 ............................................................................................. 213
8.3 注册中心的使用方法 .............................................................................................. 217
8.3.1 通过注册中心构建编排治理服务 .................................................................. 217
8.3.2 使用注册中心实现数据访问熔断 .................................................................. 226
8.4 链路跟踪的使用方法 .............................................................................................. 230
8.4.1 初始化第三方 Tracer 类 ............................................................................... 230
8.4.2 通过 ShardingTracer 获取 Tracer 类 ............................................................... 231
8.4.3 基于 Hook 机制填充 Span ............................................................................ 233
8.5 本章小结 ............................................................................................................... 236
第 9 章 ShardingSphere 代理服务 ........................................................................................ 237
9.1 Sharding-Proxy 的使用方法 ..................................................................................... 237
9.1.1 安装和配置 ................................................................................................ 238
9.1.2 SQL 语句 ................................................................................................... 242
9.1.3 SCTL 语句 ................................................................................................. 245
9.1.4 代码集成 .................................................................................................... 246
9.2 Sharding-Proxy 架构解析 ......................................................................................... 246
9.2.1 Sharding-Proxy 整体架构 ............................................................................. 247
9.2.2 Sharding-Proxy 整合 Sharding-JDBC ............................................................. 256
9.3 本章小结 ............................................................................................................... 259
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺