1. 程式人生 > >【二】MyCAT主要作用、讀寫分離、負載均衡、垂直切分、水平切分概述

【二】MyCAT主要作用、讀寫分離、負載均衡、垂直切分、水平切分概述

主要作用:

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中可以建立公共連線池,供不同應用使用,從而有效控制資料庫連線的數量。