開源資料庫中介軟體- MyCat 學習筆記
1、簡介
MyCat 曾是阿里開源產品Cobar,Cobar核心功能和優勢是 MySQL 資料庫分片。Mycat 是基於 cobar 演變而來,對 cobar 的程式碼進行了徹底的重構,使用 NIO 重構了網路模組,並且優化了 Buffer 核心,增強了聚合,Join 等基本特性,同時相容絕大多數資料庫成為通用的資料庫中介軟體。MyCAT是一個新穎的資料庫中介軟體產品支援mysql叢集,或者mariadb cluster,提供高可用性資料分片叢集。你可以像使用mysql一樣使用mycat。對於開發人員來說根本感覺不到mycat
2、架構
3、應用場景
解決海量資料儲存方案
4、核心概念- 分片
通過某種特定的條件,將我們存放在同一個資料庫中的資料分散存放到多個數據庫(主機)上面,以達到分散單臺裝置負載的效果。 資料的切分(Sharding)根據其切分規則的型別,可以分為兩種切分模式。
(1)垂直(縱向)切分
一種是按照不同的表(或者Schema)來切分到不同的資料庫(主機)之上,這種切分可以稱之為資料的垂直(縱向)切分。
(2)水平(橫向)切分
另外一種則是根據表中的資料的邏輯關係,將同一個表中的資料按照某種條件拆分到多臺資料庫(主機)上面,這種切分稱之為資料的水平(橫向)切分。
5、核心概念- 分片規則
(1)按主鍵範圍分片 rang-long
預設配置如下:
# range start-end ,data node index
# K=1000,M=10000.
0-500M=0
500M-1000M=1
1000M-1500M=2
(2)一致性雜湊murmur
將制定的主鍵,均勻的分佈在各個分片中。
6、與資料庫配合完成讀寫分離
MySQL負責主從複製;
MyCat負責讀寫自動切換