目錄
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公司發布的中間件
4、Mycat的官網
http://www.mycat.io/
2.MyCat能干什么
1、讀寫分離

2、資料分片
垂直拆分(分庫)、水平拆分(分表)、垂直+水平拆分(分庫分表)

3、多資料源整合

3.原理
Mycat 的原理中最重要的一個動詞是“攔截”,它攔截了用戶發送過來的 SQL 陳述句,首先對 SQL 陳述句做了一些特定的分析:如分片分析、路由分析、讀寫分離分析、快取分析等,然后將此 SQL 發往后端的真實資料庫,并將回傳的結果做適當的處理,最終再回傳給用戶,
這種方式把資料庫的分布式從代碼中解耦出來,程式員察覺不出來后臺使用Mycat 還是MySQL,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/257422.html
標籤:其他
