Mycat入門概述

目錄

 

1.MyCat是什麼

2.MyCat能幹什麼

3.原理


1.MyCat是什麼

Mycat 是數據庫中間件。

1、數據庫中間件 

中間件:是一類連接軟件組件和應用的計算機軟件,以便於軟件各部件之間的溝通。例子:Tomcat,web中間件。

數據庫中間件:連接java應用程序和數據庫

 2、爲什麼要用Mycat

① Java與數據庫緊耦合。

② 高訪問量高併發對數據庫的壓力。

③ 讀寫請求數據不一致

3、數據庫中間件對比

① Cobar屬於阿里B2B事業羣,始於2008年,在阿里服役3年多,接管3000+個MySQL數據庫的schema,集羣日處理在線SQL請求50億次以上。由於Cobar發起人的離職,Cobar停止維護。

② Mycat是開源社區在阿里cobar基礎上進行二次開發,解決了cobar存在的問題,並且加入了許多新的功能在其中。青出於藍而勝於藍。

③ OneProxy基於MySQL官方的proxy思想利用c進行開發的,OneProxy是一款商業收費的中間件。捨棄了一些功能,專注在性能和穩定性上。

④ kingshard由小團隊用go語言開發,還需要發展,需要不斷完善。

⑤ Vitess是Youtube生產在使用,架構很複雜。不支持MySQL原生協議,使用需要大量改造成本。

⑥ Atlas是360團隊基於mysql proxy改寫,功能還需完善,高併發下不穩定。

⑦ MaxScale是mariadb(MySQL原作者維護的一個版本) 研發的中間件

⑧ MySQLRoute是MySQL官方Oracle公司發佈的中間件

4Mycat的官網

http://www.mycat.io/

 


2.MyCat能幹什麼

1、讀寫分離

2、數據分片

垂直拆分(分庫)、水平拆分(分表)、垂直+水平拆分(分庫分表)

 

 

 

3、多數據源整合


3.原理

Mycat 的原理中最重要的一個動詞是“攔截”,它攔截了用戶發送過來的 SQL 語句,首先對 SQL 語句做了一些特定的分析:如分片分析、路由分析、讀寫分離分析、緩存分析等,然後將此 SQL 發往後端的真實數據庫,並將返回的結果做適當的處理,最終再返回給用戶。

這種方式把數據庫的分佈式從代碼中解耦出來,程序員察覺不出來後臺使用Mycat 還是MySQL。

 

 

 

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