分佈式數據庫架構及企業實踐 : 基於 Mycat 中間件

周繼鋒, 等

  • 出版商: 電子工業
  • 出版日期: 2016-11-01
  • 售價: $474
  • 貴賓價: 9.5$450
  • 語言: 簡體中文
  • 頁數: 312
  • 裝訂: 平裝
  • ISBN: 712130287X
  • ISBN-13: 9787121302879

立即出貨(限量) (庫存=1)

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

相關主題

商品描述

<內容簡介>

 

因特網的蓬勃發展,業務驅動技術不斷升級,在系統越來越龐大,技術越來越複雜,應用部署集群化,所有壓力全部指向數據庫,數據量巨大,數據庫優化也到極限了,數據庫的運維難以為繼,在這種情況下,分佈式數據庫似乎成為唯獨的解決方案。

為瞭解決傳統數據庫的分佈式化這個技術難題,各種數據庫中間件應運而生,從早期的Amoeba、TDDL、Cobar,到如今的Mycat,技術日新月異,發展迅猛。Mycat已經成為了一個強大的開源分佈式數據庫中間件產品。面對企業應用的海量數據事務處理,是目前好的開源解決方案。

支持多種數據庫,開發活躍,已有數百個項目使用,預期Mycat的採用將有爆發式增長趨勢。所以Mycat開源社區核心開發者共同撰寫了本書,幫助企業更好的使用Mycat中間件架構企業分佈式數據庫系統。

 

 

<本書特色>

 

本書由資深Mycat 專家及一線架構師、DBA 編寫而成。

全書總計8 章,首先簡單介紹了分佈式系統和分佈式數據庫的需求,然後講解了分佈式數據庫的實現原理,並對市場上存在的各種分佈式數據庫中間件進行了對比,再圍繞著如何利用Mycat 實現分佈式數據庫而展開。

本書對Mycat 從入門到進階、從高級技術實踐到架構剖析、從網絡通信協議解析到系統工作原理的方方面面進行了詳細講解,並剖析了Mycat的SQL 路由、跨庫聯合查詢、分佈式事務及原生MySQL、PostgreSQL 協議等核心技術。通過本書不僅可以瞭解Mycat 的基本概念,掌握Mycat 配置等技術,還能感受到Mycat 的架構設計之美,瞭解Mycat 2.0的未來規劃。

無論是對於軟件工程師、測試工程師、運維工程師、軟件架構師、技術經理,還是對於資深IT 人士來說,本書都極具參考價值。

 

 

<作者簡介>

 

周繼鋒

擁有十多年大型項目架構設計及實戰經驗,曾主導過眾多分佈式系統、微服務及大數據項目。在高並發、高可用、高可擴展性、高可維護性等領域擁有豐富的經驗,對Hadoop、Spark源碼進行過深度分析並具有豐富的實戰經驗。曾在ERP、醫學、因特網行業擔任資深工程師、資深架構師、技術總監等職務,為煉數成金高級講師及國內知名的開源分佈式數據庫中間件Mycat的負責人。

 

馮鑽優

多年來致力於分佈式系統架構、分佈式數據庫、大數據技術的研究,在高並發、高可用的分佈式系統設計和大數據處理方面有著豐富的經驗。曾擔任架構師、開發經理、技術經理等職位,主導過大型分佈式系統、大數據分析項目的開發及實施落地,屬於理論兼實踐型架構師,現於某大型央企擔任高級架構師、高級經理,為國內知名的開源分佈式數據庫中間件Mycat的高級顧問。

 

陳勝尊

擁有多年編程經驗,專註於電信運營商大數據項目的設計及開發,擅長Hadoop生態圈的大數據分析技術、分佈式架構設計、高並發架構設計、MySQL優化,曾主導眾多大數據項目的架構設計。為國內知名的開源分佈式數據庫中間件Mycat的活躍開發者。

 

左越宗

擁有多年數據庫管理經驗,維護過超過500台以上的數據庫實例,精通NoSQL集群維護與優化、異構數據遷移、關係型數據庫集群設計、分佈式架構設計、SQL優化及數據庫軟件性能優化等,曾在因特網金融、在線教育、遊戲行業擔任高級MySQL DBA、數據庫集群工程師、數據庫專家等職位。為尚觀科技高級講師及國內知名的開源分佈式數據庫中間件Mycat的高級顧問。

 

 

<章節目錄>

 

第1章   數據庫中間件與分佈式數據庫的實現 

1.1 什麼是分佈式系統 

1.2 為什麼需要分佈式數據庫 

1.3 分佈式數據庫的實現原理 

1.4 Mycat 數據庫中間件簡介 

1.4.1 Mycat 的歷史與未來規劃 

1.4.2 Mycat 與其他中間件的區別 

1.4.3 Mycat 的優勢 

1.4.4 Mycat 的適用場合 

 

第2章   Mycat 入門 

2.1 環境搭建

2.1.1 Windows 環境搭建

2.1.2 Linux 環境搭建

2.2 Mycat 核心概念詳解

2.2.1 邏輯庫(schema)

2.2.2 邏輯表(table) 

2.2.3 分片節點(dataNode) 

2.2.4 節點主機(dataHost)

2.3 Mycat 原理介紹 

2.4 參與Mycat 源碼開發 

2.4.1 Mycat 源碼環境搭建 

2.4.2 Mycat 源碼調試 

 

第3章   Mycat 進階 

3.1 Mycat 配置詳解

3.1.1 Mycat 支持的兩種配置方式

3.1.2 server.xml 配置文件

3.1.3 schema.xml 配置文件 

3.1.4 sequence 配置文件

3.1.5 zk-create.yaml 配置文件 

3.1.6 其他配置文件 

3.2 Mycat 分片規則詳解 

3.2.1 分片表與非分片表 

3.2.2 ER 關係分片表 

3.2.3 分片規則rule.xml 文件詳解 

3.2.4 取模分片 

3.2.5 枚舉分片 

3.2.6 範圍分片 

3.2.7 範圍求模算法 

3.2.8 固定分片hash 算法

3.2.9 取模範圍算法

3.2.10 字符串hash 求模範圍算法 

3.2.11 應用指定的算法

3.2.12 字符串hash 解析算法

3.2.13 一致性hash 算法

3.2.14 按日期(天)分片算法

3.2.15 按單月小時算法

3.2.16 自然月分片算法

3.2.17 日期範圍hash 算法

3.3 Mycat 管理命令詳解

3.3.1 Reload 命令

3.3.2 Show 命令

 

第4章   Mycat 高級技術實戰

4.1 用Mycat 搭建讀寫分離

4.1.1 MySQL 讀寫分離

4.1.2 MySQL Galera Cluster 讀寫分離

4.1.3 SQL Server 讀寫分離

4.2 Mycat 故障切換

4.2.1 Mycat 主從切換

4.2.2 MySQL Galera 節點切換

4.3 Mycat+Percona+HAProxy+Keepalived

4.3.1 Mycat

4.3.2 Percona 集群

4.3.3 HAProxy

4.3.4 Keepalived

4.4 MHA+Keepalived 集群搭建

4.4.1 配置MySQL 半同步方式

4.4.2 安裝配置MHA

4.4.3 測試重構

4.4.4 擴展Keepalived

4.5 用ZooKeeper 搭建Mycat 高可用集群

4.5.1 ZooKeeper 概述

4.5.2 ZooKeeper 的運用場景

4.5.3 ZooKeeper 在Mycat 中的使用

4.6 Mycat 高可用配置

4.7 Mycat 註解技術

4.7.1 balance 註解實戰

4.7.2 master/slave 註解實戰

4.7.3 SQL 註解實戰

4.7.4 schema 註解實戰 

4.7.5 dataNode 註解實戰

4.7.6 catlet 註解實戰

 

第5章   Mycat 企業運維

5.1 Mycat 性能監控——Mycat-web 詳解

5.1.1 Mycat-web 簡介

5.1.2 Mycat-web 的配置和使用

5.1.3 Mycat 性能監控指標

5.2 Mycat 性能優化

5.3 MySQL 優化技術

5.3.1 數據庫建表設計規範

5.3.2 SQL 語句與索引

5.3.3 配置文件

5.3.4 InnoDB 選擇文件系統

5.3.5 系統架構 

 

第6章   Mycat 架構剖析

6.1 Mycat 總體架構介紹 

6.2 Mycat 網絡I/O 架構與實現 

6.2.1 Mycat I/O 架構概述

6.2.2 前端通信框架 

6.3 Mycat 線程架構與實現

6.3.1 多線程基礎

6.3.2 Mycat 線程架構

6.4 Mycat 內存管理及緩存架構與實現

6.4.1 Mycat 內存管理

6.4.2 Mycat 緩存架構與實現

6.5 Mycat 連接池架構與實現

6.5.1 Mycat 連接池

6.5.2 Mycat 連接池架構及代碼實現

6.6 Mycat 主從切換架構與實現

6.6.1 Mycat 主從切換概述

6.6.2 Mycat 主從切換的實現

 

第7章   Mycat 核心技術分析

7.1 Mycat 分佈式事務的實現

7.1.1 XA 規範

7.1.2 二階段提交

7.1.3 三階段提交

7.1.4 Mycat 中分佈式事務的實現

7.2 Mycat SQL 路由的實現

7.2.1 路由的作用

7.2.2 SQL 解析器

7.2.3 路由計算

7.3 Mycat 跨庫Join 的實現

7.3.1 全局表 

7.3.2 ER 分片

7.3.3 catlet

7.3.4 ShareJoin 

7.4 Mycat 數據匯聚和排序的實現

7.4.1 數據排序

7.4.2 數據匯聚 

 

第8章   Mycat多數據庫支持原理與實現

8.1 MySQL 協議在Mycat 中的實現

8.1.1 MySQL 協議概述 

8.1.2 Mycat 的MySQL 協議實現

8.2 PostgreSQL 協議在Mycat 中的實現

8.2.1 PostgreSQL 介紹 

8.2.2 PostgreSQL 協議

8.2.3 PostgreSQL 實現

8.3 Mycat 對JDBC 支持的實現 

8.3.1 Oracle 配置

8.3.2 SQL Server 配置

8.3.3 MongoDB 配置

8.3.4 源碼分析