Apache ShardingSphere 實戰

鄭天民

  • 出版商: 電子工業
  • 出版日期: 2021-09-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 268
  • 裝訂: 平裝
  • ISBN: 7121356546
  • ISBN-13: 9787121356544
  • 相關分類: Java 程式語言
  • 立即出貨

買這商品的人也買了...

商品描述

本書分為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
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
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
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