MyCat是什么?
從定義和分類來看,它是一個開源的分布式數據庫系統,是一個實現了MySQL協議的服務器,前端用戶可以把它看作是一個數據庫代理,用MySQL客戶端工具和命令行訪問,而其后端可以用MySQL原生協議與多個MySQL服務器通信,也可以用JDBC協議與大多數主流數據庫服務器通信,其核心功能是分表分庫讀寫分離,即將一個大表水平分割為N個小表,存儲在后端MySQL服務器里或者其他數據庫里。也可以指定多個寫庫多個讀庫。
MyCat發展到目前的版本,已經不是一個單純的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流數據庫,也支持MongoDB這種新型NoSQL方式的存儲,未來還會支持更多類型的存儲。而在最終用戶看來,無論是那種存儲方式,在MyCat里,都是一個傳統的數據庫表,支持標準的SQL語句進行數據的操作,這樣一來,對前端業務系統來說,可以大幅降低開發難度,提升開發速度。
MyCat可以干什么?
單純的讀寫分離,此時配置最為簡單,支持讀寫分離,主從切換
分表分庫,對于超過 1000 萬的表進行分片,最大支持 1000 億的單表分片
多租戶應用,每個應用一個庫,但應用程序只連接 Mycat,從而不改造程序本身,實現多租戶化
報表系統,借助于 Mycat 的分表能力,處理大規模報表的統計
替代 Hbase,分析大數據
作為海量數據實時查詢的一種簡單有效方案,比如 100 億條頻繁查詢的記錄需要在 3 秒內查詢出來結果
MyCat分布式架構設計:
基于分布式關系型數據庫,實現輕松應對百億級數據分析場景方案
百億級數據橫向分片存儲于數據分析架構
整體思路:
(1)利用mycat的分庫分表規則,將百億級數據橫向分攤到不同的節點上;
(2)每個節點上實現一主多備,實現數據備份與讀寫分離;
(3)所有的寫操作首先會在mycat中根據規則計算,路由到指定的節點上寫操作;
(4)聚合查詢mycat會分攤到各個節點上去計算之后,再基于節點的結果進行匯總處理;
(5)利用NBI大數據可視化分析工具與Mycat無縫連接;
(6)通過NBI大數據可視化分析工具(http://nbi.easydatavis.com:8033)提供的拖拽式分析,可以快速完成各類分析報告和百億級數據,秒級響應的用戶體驗。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。