Mycat學習

前言

  最近小鹹兒學習到了多租戶的知識,但是在學習的時候第一個接觸的就是MYCAT,接下來就看一下MYCAT是什麼。

什麼是MYCAT

  • 一個徹底開源的,面向企業應用開發的大數據庫集羣
  • 支持事務、ACID、可以替代MySQL的加強版數據庫
  • 一個可以視爲MySQL集羣的企業級數據庫,用來替代昂貴的Oracle集羣
  • 一個融合內存緩存技術、NoSQL技術、HDFS大數據的新型SQL Server
  • 結合傳統數據庫和新型分佈式數據倉庫的新一代企業級數據庫產品
  • 一個新穎的數據庫中間件產品

  簡單來說,就是在程序和數據庫中間添加了一箇中間件,可以通過配置致使程序去訪問不同的數據庫。

優勢

  基於阿里開源的Cobar產品而研發,Cobar的穩定性、可靠性、優秀的架構和性能以及衆多成熟的使用案例使得MYCAT一開始就擁有一個很好的起點,站在巨人的肩膀上,我們能看到更遠。業界優秀的開源項目和創新思路被廣泛融入到MYCAT的基因中,使得MYCAT在很多方面都領先於目前其他一些同類的開源項目,甚至超越某些商業產品。

  MYCAT背後有一支強大的技術團隊,其參與者都是5年以上資深軟件工程師、架構師、DBA等,優秀的技術團隊保證了MYCAT的產品質量。

  MYCAT並不依託於任何一個商業公司,因此不像某些開源項目,將一些重要的特性封閉在其商業產品中,使得開源項目成了一個擺設。

MYCAT高可用方案

在這裏插入圖片描述
在這裏插入圖片描述

MYCAT關鍵特性

  • 支持SQL92標準
  • 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常見SQL語法
  • 遵守MySQL原生協議,跨語言,跨平臺,跨數據庫的通用中間件代理
  • 基於心跳的自動故障切換,支持讀寫分離,支持MySQL主從,以及galera cluster集羣
  • 支持Galera for MySQL集羣,Percona Cluster或者MariaDB cluster
  • 基於Nio實現,有效管理線程,解決高併發問題
  • 支持數據的多片自動路由與聚合,支持sum,count,max等常用的聚合函數,支持跨庫分頁
  • 支持單庫內部任意join,支持跨庫兩表join,甚至基於caltlet的多表join
  • 支持通過全局表,ER關係的分片策略,實現了高效的多表join查詢。
  • 支持多租戶方案 ------------重點使用(小鹹兒項目)
  • 支持分佈式事務(弱xa)
  • 支持XA分佈式事務(1.6.5)
  • 支持全局序列號,解決分佈式下的主鍵生成問題
  • 分片規則豐富,插件化開發,易於擴展
  • 強大的web,命令行監控
  • 支持前端作爲MySQL通用代理,後端JDBC方式支持Oracle、DB2、SQL Server、MongoDB、巨杉
  • 支持密碼加密
  • 支持服務降級
  • 支持IP白名單
  • 支持SQL黑名單、SQL注入攻擊攔截
  • 支持prepare預編譯指令(1.6)
  • 支持非堆內存(Direct Memory)聚合計算*(1.6)
  • 支持PostgreSQL的native協議(1.6)
  • 支持MySQL和Oracle存儲過程,out參數、多結果集返回(1.6)
  • 支持zookeeper協調主從切換、zk序列、配置zk化(1.6)
  • 支持庫內分表(1.6)
  • 集羣基於Zookeeper管理,在線升級,擴容,智能優化,大數據處理(2.0開發版)

MYCAT示例

在這裏插入圖片描述

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