分散式資料庫架構及企業實踐:基於Mycat中間件

基本信息,內容簡介,目錄信息,

基本信息

分散式資料庫架構及企業實踐——基於Mycat中間件
作 譯 者:周繼鋒等
出版時間:2016-11
千 字 數:450
版 次:01-01
頁 數:312
開 本:16開
I S B N :9787121302879

內容簡介

網際網路的蓬勃發展,業務驅動技術不斷升級,在系統越來越龐大,技術越來越複雜,套用部署集群化,所有壓力全部指向資料庫,數據量巨大,資料庫最佳化也到極限了,資料庫的運維難以為繼,在這種情況下,分散式資料庫似乎成為唯一的解決方案。為了解決傳統資料庫的分散式化這個技術難題,各種資料庫中間件應運而生,從早期的Amoeba、TDDL、Cobar,到如今的Mycat,技術日新月異,發展迅猛。Mycat已經成為了一個強大的開源分散式資料庫中間件產品。面對企業套用的海量數據事務處理,是目前最好的開源解決方案。支持多種資料庫,開發活躍,已有數百個項目使用,預期Mycat的採用將有爆發式增長趨勢。所以Mycat開源社區核心開發者共同撰寫了本書,幫助企業更好的使用Mycat中間件架構企業分散式資料庫系統。

目錄信息

第 1 章 資料庫中間件與分散式資料庫的實現..............................................................1
1.1 什麼是分散式系統.......................................................................................................1
1.2 為什麼需要分散式資料庫...........................................................................................2
1.3 分散式資料庫的實現原理 ........................................................................................ 3
1.4 Mycat 資料庫中間件簡介 ......................................................................................... 5
1.4.1 Mycat 的歷史與未來規劃 ...................................................................................... 5
1.4.2 Mycat 與其他中間件的區別 .................................................................................. 8
1.4.3 Mycat 的優勢 ..........................................................................................................10
1.4.4 Mycat 的適用場合 ..................................................................................................11
第 2 章 Mycat 入門……………………………………………………………………………………………………..13
2.1 環境搭建 ....................................................................................................................13
2.1.1 Windows 環境搭建 ..................................................................................................13
2.1.2 Linux 環境搭建 ........................................................................................................ 15
2.2 Mycat 核心概念詳解 .................................................................................................. 16
2.2.1 邏輯庫(schema) ................................................................................................. 16
2.2.2 邏輯表(table) ..................................................................................................... 16
2.2.3 分片節點(dataNode) ......................................................................................... 17
2.2.4 節點主機(dataHost) ........................................................................................... 17
2.3 Mycat 原理介紹 .......................................................................................................... 18
2.4 參與 Mycat 源碼開發 ............................................................................................... 19
2.4.1 Mycat 源碼環境搭建 ............................................................................................... 19
2.4.2 Mycat 源碼調試 ....................................................................................................... 19
第 3 章 Mycat 進階 ……………………………………………………………………………………………………..22
3.1 Mycat 配置詳解 ...........................................................................................................22
3.1.1 Mycat 支持的兩種配置方式 ....................................................................................22
3.1.2 server.xml 配置檔案 ................................................................................................. 23
3.1.3 schema.xml 配置檔案 ............................................................................................... 28
3.1.4 sequence 配置檔案 ...................................................................................................37
3.1.5 zk-create.yaml 配置檔案 ........................................................................................... 41
3.1.6 其他配置檔案 ........................................................................................................... 44
3.2 Mycat 分片規則詳解 ................................................................................................... 46
3.2.1 分片表與非分片表 .................................................................................................... 46
3.2.2 ER 關係分片表 ........................................................................................................... 46
3.2.3 分片規則 rule.xml 檔案詳解 ................................................................................... 46
3.2.4 取模分片 .................................................................................................................... 47
3.2.5 枚舉分片 .....................................................................................................................48
3.2.6 範圍分片 .................................................................................................................... 49
3.2.7 範圍求模算法 .............................................................................................................49
3.2.8 固定分片 hash 算法 ................................................................................................. 50
3.2.9 取模範圍算法 ............................................................................................................. 52
3.2.10 字元串 hash 求模範圍算法 ................................................................................... 53
3.2.11 套用指定的算法 ....................................................................................................... 54
3.2.12 字元串 hash 解析算法 ............................................................................................ 54
3.2.13 一致性 hash 算法 .................................................................................................... 55
3.2.14 按日期(天)分片算法 ............................................................................................ 56
3.2.15 按單月小時算法 ........................................................................................................ 57
3.2.16 自然月分片算法 ........................................................................................................ 58
3.2.17 日期範圍 hash 算法 ................................................................................................ 58
3.3 Mycat 管理命令詳解 ...................................................................................................... 59
3.3.1 Reload 命令 .................................................................................................................. 61
3.3.2 Show 命令 .................................................................................................................... 62
第 4 章 Mycat 高級技術實戰………………………………………………………………………………………….. 68
4.1 用 Mycat 搭建讀寫分離 ............................................................................................... 68
4.1.1 MySQL 讀寫分離 .......................................................................................................... 69
4.1.2 MySQL Galera Cluster 讀寫分離 .................................................................................. 73
4.1.3 SQL Server 讀寫分離 ................................................................................................... 83
4.2 Mycat 故障切換 ............................................................................................................. 86
4.2.1 Mycat 主從切換 ...........................................................................................................86
4.2.2 MySQL Galera 節點切換 .............................................................................................. 99
4.3 Mycat+Percona+HAProxy+Keepalived .............................................................................. 113
4.3.1 Mycat ............................................................................................................................. 113
4.3.2 Percona 集群 ....................................................................................................... ……..124
4.3.3 HAProxy ......................................................................................................................... 131
4.3.4 Keepalived ................................................................................................................. …..138
4.4 MHA+Keepalived 集群搭建 ............................................................................................ 140
4.4.1 配置 MySQL 半同步方式 ................................................................................ ………..142
4.4.2 安裝配置 MHA ............................................................................................................. 150
4.4.3 測試重構 ...................................................................................................................... 153
4.4.4 擴展 Keepalived ........................................................................................................... 155
4.5 用 ZooKeeper 搭建 Mycat 高可用集群 ...................................................................... 158
4.5.1 ZooKeeper 概述 ........................................................................................................... 158
4.5.2 ZooKeeper 的運用場景 ............................................................................................... 161
4.5.3 ZooKeeper 在 Mycat 中的使用 ................................................................................. 163
4.6 Mycat 高可用配置 ......................................................................................................... 165
4.7 Mycat 註解技術 ..............................................................................................................170
4.7.1 balance 註解實戰 ........................................................................................................ 170
4.7.2 master/slave 註解實戰 ................................................................................................ 172
4.7.3 SQL 註解實戰 .............................................................................................................. 173
4.7.4 schema 註解實戰 .........................................................................................................176
4.7.5 dataNode 註解實戰 ..................................................................................................... 176
4.7.6 catlet 註解實戰 ............................................................................................................ 177
第 5 章 Mycat 企業運維 ………………………………………………………………………………………………….179
5.1 Mycat 性能監控——Mycat-web 詳解 ............................................... …………………………179
5.1.1 Mycat-web 簡介 .......................................................................................................... 179
5.1.2 Mycat-web 的配置和使用 .......................................................................................... 180
5.1.3 Mycat 性能監控指標 ............................................................................................. …..181
5.2 Mycat 性能最佳化 ............................................................................................................. 183
5.3 MySQL 最佳化技術 ............................................................................................................ 186
5.3.1 資料庫建表設計規範 ................................................................................................. 186
5.3.2 SQL 語句與索引 .......................................................................................................... 195
5.3.3 配置檔案 ..................................................................................................................... 206
5.3.4 InnoDB 選擇檔案系統 ................................................................................................ 212
5.3.5 系統架構 .................................................................................................................... 213
第 6 章 Mycat 架構剖析……………………………………………………………………………………………….. 215
6.1 Mycat 總體架構介紹 .................................................................................................... 215
6.2 Mycat 網路 I/O 架構與實現 ....................................................................................... 218
6.2.1 Mycat I/O 架構概述 ....................................................................................................218
6.2.2 前端通信框架 .............................................................................................................221
6.3 Mycat 執行緒架構與實現 ................................................................................................ 224
6.3.1 多執行緒基礎 ................................................................................................................224
6.3.2 Mycat 執行緒架構 ........................................................................................................ 226
6.4 Mycat 記憶體管理及快取架構與實現 ........................................................................... 228
6.4.1 Mycat 記憶體管理 ........................................................................................................ 229
6.4.2 Mycat 快取架構與實現 .............................................................................................231
6.5 Mycat 連線池架構與實現 ............................................................................................232
6.5.1 Mycat 連線池 ............................................................................................................. 232
6.5.2 Mycat 連線池架構及代碼實現 ……………………………………………………………………………….234
6.6 Mycat 主從切換架構與實現 ........................................................................................ 235
6.6.1 Mycat 主從切換概述 ................................................................................................. 236
6.6.2 Mycat 主從切換的實現 .............................................................................................238
第 7 章 Mycat 核心技術分析 ……………………………………………………………………………………….241
7.1 Mycat 分散式事務的實現 ............................................................................................ 241
7.1.1 XA 規範 .......................................................................................................................241
7.1.2 二階段提交 ................................................................................................................ 242
7.1.3 三階段提交 .................................................................................................................243
7.1.4 Mycat 中分散式事務的實現 ...................................................................................... 244
7.2 Mycat SQL 路由的實現 .................................................................................................. 249
7.2.1 路由的作用 ................................................................................................................ 249
7.2.2 SQL 解析器 ................................................................................................................. 250
7.2.3 路由計算 .................................................................................................................... 252
7.3 Mycat 跨庫 Join 的實現 .............................................................................................. 260
7.3.1 全局表 ........................................................................................................................ 261
7.3.2 ER 分片 ....................................................................................................................... 262
7.3.3 catlet ............................................................................................................................. 263
7.3.4 ShareJoin ....................................................................................................................... 264
7.4 Mycat 數據匯聚和排序的實現 ..................................................................................... 270
7.4.1 數據排序 .................................................................................................................... 270
7.4.2 數據匯聚 .................................................................................................................... 273
第 8 章 Mycat多資料庫支持原理與實現 ……………………………………………………………………..275
8.1 MySQL 協定在 Mycat 中的實現 ................................................................................. 275
8.1.1 MySQL 協定概述 ....................................................................................................... 275
8.1.2 Mycat 的 MySQL 協定實現 ..................................................................................... 283
8.2 PostgreSQL 協定在 Mycat 中的實現 ......................................................................... 287
8.2.1 PostgreSQL 介紹 ........................................................................................................ 287
8.2.2 PostgreSQL 協定 ........................................................................................................ 288
8.2.3 PostgreSQL 實現 ........................................................................................................ 293
8.3 Mycat 對 JDBC 支持的實現 ....................................................................................... 298
8.3.1 Oracle 配置 ............................................................................................................... 299
8.3.2 SQL Server 配置 ........................................................................................................ 300
8.3.3 MongoDB 配置 ......................................................................................................... 301
8.3.4 源碼分析 .................................................................................................................. 306

相關詞條

熱門詞條

聯絡我們