【二】MyCAT主要作用、讀寫分離、負載均衡、垂直切分、水平切分概述
阿新 • • 發佈:2019-01-28
主要作用:
1作為分散式資料庫中間層使用。
MyCAT由Java開發,理論上說所有可以使用JDBC連線的關係型資料庫和非關係型資料庫都能使用MyCAT。
2.對主從資料庫的讀寫分離、讀的負載均衡。
如果不用MyCAT,在每一個訪問這套資料庫的應用中都要實現讀寫分離的邏輯。
如果MySQL是一主多從,主卦了,MyCAT會選一個從來讀寫,但是其他從不會同步新主的資料。
所以MySQL是一主多從要做高可用建議使用MHA之類的主從複製管理工具。
3.對業務資料進行垂直切分、寫的負載均衡
把原來儲存到同一個DB中的表,按照業務模組拆分到多個DB中。
比如,訂單/倉配、使用者、商品的表都在a資料庫中,現在把訂單/倉配放到a資料庫中,把使用者放到b資料庫中,把商品放到c資料庫中。
MyCAT的邏輯庫功能,會把3組不同的資料庫虛擬成一個數據庫,還保持原來的a名字不變。這可以最大限度的減少對已經存在的應用的修改。
4.對業務資料庫進行水平切分、寫的負載均衡
在垂直切分的基礎上,再把a資料庫中訂單/倉配進行水平切分。F(c)=1放在order01庫,F(c)=2放在order02庫,F(c)=3庫放在order03。
F函式代表切分規則,c代表指定切分的列,c是要進行水平切分的表中的某一列,通常是主鍵。
這一整套的切分邏輯在引入MyCAT後就由MyCAT來實現了,不用在每一個應用中單獨實現。
5.控制資料庫接連的數量
MyCAT中可以建立公共連線池,供不同應用使用,從而有效控制資料庫連線的數量。