MySQL Fabric特色:mysql
1:高可用性 (HA) 。sql
2:使用數據分片的橫向擴展。(自動數據分片)數據庫
這兩個特性既能夠單獨使用,也能夠結合使用。緩存
原理:安全
mysqlfabric 是處理任何管理請求的進程。使用 HA 特性時,還可讓此進程負責監視主服務器並在發生故障時,開始故障轉移,將從服務器升級成主服務器。MySQL Fabric-aware 鏈接器把從 MySQL Fabric 獲取的路由信息存儲到緩存中,而後憑藉該信息將事務或查詢發送給正確的 MySQL 服務器。服務器
高可用性:
HA 組由兩個或更多個 MySQL 服務器組成;任什麼時候刻,其中都有一臺服務器做爲主服務器(MySQL 複製功能的主服務器),其餘服務器則做爲從服務器(MySQL 複製功能的從服務器)。HA 組的做用就是確保該組中保存的數據始終可訪問。MySQL 的複製功能可經過複製來確保數據安全,負載均衡
MySQL Fabric 的高可用性解決方案在此基礎上提供了兩個必不可少的額外要素:性能
1:故障檢測和升級 — MySQL Fabric 監視 HA 組中的主服務器,在主服務器發生故障時選擇一個從服務器並將其升級爲主服務器
2:數據庫請求路由 — 將寫入請求路由到主服務器以及將讀取請求在各個從服務器之間進行負載均衡的操做對應用是透明的,即便在故障轉移期間拓撲發生變化時也是如此spa
分片 — 橫向擴展:
當接近一個 MySQL 服務器(或 HA 組)的容量或寫入性能極限時,MySQL Fabric 可在多個 MySQL 服務器「組」中對數據進行分區,從而支持數據庫服務器橫向擴展。請注意,一個組能夠只包含一個 MySQL 服務器,也能夠是一個 HA 組。代理
管理員定義這些服務器之間的數據分片方式;指定應將哪些表的列用做分片鍵,以及是使用 HASH 映射仍是 RANGE 映射將這些鍵映射至正確的分片。
若是須要進一步分片,MySQL Fabric 能夠拆分現有分片;此外,還能夠從新分配分片。
MySQL Fabric-aware 鏈接器
目前,提供了針對 Java 的、PHP 的和 Python 的 MySQL Fabric-aware 鏈接器。這些鏈接器自動從 MySQL Fabric 獲取路由信息並將其存儲在緩存中,以便將查詢和事務直接路由至正確的 MySQL 服務器。應用只需提供分片鍵便可,無需瞭解服務器場的拓撲或任何服務器的狀態。
無代理運行由於事務和查詢直接路由至正確的 MySQL 服務器,所以並不須要代理功能 — 有助於減小延遲和下降複雜性。此外,任何目標機器上都不須要運行代理。