MYCAT 簡介(一)

 

1.背景

社區愛好者在阿里cobar基礎上進行二次開發,解決了cobar當時存 在的一些問題,並且加入了許多新的功能在其中,逐漸替換cobar舊的框架體系,並命名爲mycat。目前MyCAT社區活 躍度很高,目前已經有一些公司在使用MyCAT。MyCAT是目前最流行的基於java語言編寫的數據庫中間件,是一個實現了Mysql協議的服務器,核心功能主要用於做分庫分表和讀寫分離。

MyCat官網:http://www.mycat.io/

2.應用,數據庫 和 mycat的關係

3.mycat優勢
 

  1. java編寫的中間件,免費,開源,社區活躍
  2. 單一的MySql數據存儲量和操作量級有限,MyCat可以管理若干MySql數據庫,可以實現數據庫的存儲和操作。
  3. 支持垂直水平數據庫拆分
  4. 對代碼弱關聯,基本無侵入式

4.基本名詞介紹

  • 分片

把單服務器上的數據分散到不同的服務器上;比如實例 A:192.168.15.108:3306 有個數據庫db,現在要進行分片,把數據一部分切分到 實例 B :192.168.109:3306的這臺機器的實例上,這樣子db就存在兩個分片;

  • 分表

1.同庫分表 :同一個數據庫中,按某種規則把數據量大的表如 t_user分成若干個數據量小的表 t_user_0,t_user_1....

優點:減少單表操作數據量大的壓力

缺點:數據仍然還在同一個庫中,CPU、內存、文件IO、網絡IO等瓶頸還是無法解決,表名不一致導致後續處理複雜

2.不同庫分表:同一個表分佈到不同的數據庫上,表名相同,操作簡單

優點:數據分散在不同庫中,CPU、內存、文件IO、網絡IO等瓶頸得到有效解決

缺點:多個庫數據需要複製,同步;聚合操作麻煩難以進行 :如left join order By,group by

  • 分庫

分庫也可以理解爲數據分片,當業務系統的數據容量接近或超過單臺服務器的容量、QPS/TPS接近或超過單個數據庫實例的處理極限等。此時,往往是採用垂直和水平結合的數據拆分方法,把數據服務和數據存儲分佈到多臺數據庫服務器上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章