github前端
https://github.com/MyCATApache/Mycat-Servermysql
myCat介紹git
myCat的誕生,要從其前身Amoeba和Cobar提及。程序員
Amoeba(變形蟲)項目,該開源框架於2008年開始發佈一款 Amoeba for Mysql軟件。這個軟件致力於MySQL的分佈式數據庫前端代理層,它主要在應用層訪問MySQL的時候充當SQL路由功能,專一於分佈式數據庫代理層(Database Proxy)開發。座落與 Client、DB Server(s)之間,對客戶端透明。具備負載均衡、高可用性、SQL過濾、讀寫分離、可路由相關的到目標數據庫、可併發請求多臺數據庫合併結果。 經過Amoeba你可以完成多數據源的高可用、負載均衡、數據切片的功能,目前Amoeba已在不少企業的生產線上面使用。github
阿里巴巴於2012年6月19日,正式對外開源的數據庫中間件Cobar,前身是早已經開源的Amoeba,不過其做者陳思儒離職去盛大以後,阿里巴巴內部考慮到Amoeba的穩定性、性能和功能支持,以及其餘因素,從新設立了一個項目組而且更換名稱爲Cobar。Cobar 是由 Alibaba 開源的 MySQL 分佈式處理中間件,它能夠在分佈式的環境下看上去像傳統數據庫同樣提供海量數據服務。web
Cobar自誕生之日起, 就受到廣大程序員的追捧,可是自2013年後,幾乎沒有後續更新。在此狀況下,MyCAT應運而生,它基於阿里開源的Cobar產品而研發,Cobar的穩定性、可靠性、優秀的架構和性能,以及衆多成熟的使用案例使得MyCAT一開始就擁有一個很好的起點,站在巨人的肩膀上,MyCAT能看到更遠。、sql
Mycat特性數據庫
支持 SQL 92標準
支持Mysql集羣,能夠做爲Proxy使用
支持JDBC鏈接ORACLE、DB二、SQL Server,將其模擬爲MySQL Server使用
支持NoSQL數據庫
支持galera for mysql集羣,percona-cluster或者mariadb cluster,提供高可用性數據分片集羣
自動故障切換,高可用性
支持讀寫分離,支持Mysql雙主多從,以及一主多從的模式
支持全局表,數據自動分片到多個節點,用於高效表關聯查詢
支持獨有的基於E-R 關係的分片策略,實現了高效的表關聯查詢
支持一致性Hash分片,有效解決分片擴容難題
多平臺支持,部署和實施簡單
支持Catelet開發,相似數據庫存儲過程,用於跨分片複雜SQL的人工智能編碼實現,143行Demo完成跨分片的兩個表的JION查詢。
支持NIO與AIO兩種網絡通訊機制,Windows下建議AIO,Linux下目前建議NIO
支持Mysql存儲過程調用
以插件方式支持SQL攔截和改寫
支持自增加主鍵、支持Oracle的Sequence機制網絡
相關教程架構