Mycat 之我的感想

最初接觸 Mycat 是由於練數上面新開的課程《Mycat從入門到精通》,並且授課老師是 Leader-us,這個是關鍵,在這以前報過Learder-us的分佈式課程,在分佈式課程開始以前,就聽到羣裏的同窗討論說Leader-us的做業很是虐,因此當時已經有些恐懼感,當第一課開始後,看到第一課做業就暈頭轉向,發現好多東西都沒聽過,因此當時直接就放棄了這門課程的做業,固然後面的視頻也就成壓箱底的東西了。如今想起來還很後悔沒有跟上節奏把分佈式的課程好好學下來,以致於後面看到分佈式課程的同窗聊那些高大尚的話題我都不敢插話。因此第二次報名Leader-us的課程Mycat的時候,在課程開始以前我就作好了心理準備,無論課程有多虐,我都要堅持到最後。mysql

在學Mycat課程以前,我對Mycat是一無所知的,當時只知道Mycat能夠用來將數據庫作成相似分佈式的這種概念,當時有聽過NewSQL的概念,就以爲Mycat好像就是相似的這麼一個東東。並且在學Mycat課程以前我連Mysql的主從都沒有用過,更不要說後面課程裏面的一些牛逼哄哄的高可用LVS / Haproxy + keepalived ,以及數據庫壓測,Linux主機性能監控這種高級貨了,可見這一路學下來是多麼的艱辛,也學到了很多東西。記得在作Mycat前面幾課的做業的時候常常是週末成天在那搗鼓Mycat,這也是Leader-us做業比較虐的地方,你必須先作做業瞭解清楚,而後下週的課程纔開始講這個知識點,因此當時爲了作做業,基本上權威指南是少不了的,並且必須翻羣裏的各類聊天記錄,問各類小白的問題,可是課程一路到如今,每節課程的做業都是實打實的操做下來,對Mycat的基本的一些功能還算是瞭解了,這也是比較欣慰的地方。整個課程學習下來積累的10多課的做業文檔,還有認識羣裏的大牛都將爲之後Mycat的實際應用鋪平道路。sql

整個課程的學習各類心酸與快樂只有實際參與了才能知道,我的文字功底很差,就不詳述了,此處省去800餘字。數據庫

接下來仍是扒一扒Mycat的好與很差,此處純屬我的看法。後端

關於Mycat作的比較好的幾點包括jvm

一、  Mycat對Mysql主從的支持,聽說這也是目前使用Mycat的羣體使用最多的功能之一分佈式

二、  Mycat路由的功能,在後端數據庫作了分片或者主從的狀況下,Mycat對自動路由功能,能夠省去業務程序多數據源切換的問題性能

三、  Mycat對於數據庫鏈接池的統一管理,由於一個數據庫的schema可能會被好幾個業務系統同時使用,隨着業務系統的增長,mysql的鏈接很快就會不夠,而若是使用Mycat作一層代理的話,全部業務系統都只要連到Mycat上,而這些業務系統是能夠共享後臺Mysql的鏈接的學習

四、  Mycat的分片功能,這也是Mycat的殺手級的功能,可是這個功能又是個雙面劍,用的好你會感受很爽,系統性能有大幅提高,用的很差你會很痛苦,並且有時候可能會很迷茫,特別是你的分片規則沒有選好的狀況下,後期系統不斷擴容,各類數據遷移的問題,可能會讓你很無語spa

 

Mycat還有待改進的地方代理

一、  對於大表分頁查詢的問題,尤爲是當分頁比較大的狀況下,Mycat須要從每一個分片取出m+n條記錄,而後到內存中來排序,獲得最終結果,這個是個很耗內存的操做,若是同一時間多有幾個這樣的查詢,極可能就致使Mycat jvm內存溢出了。

二、  在採用了Mycat進行分片的狀況下,跨分片join問題,雖然Mycat有E-R分片和全局表的概念能夠在比較大多數的狀況下解決跨分片join問題,可是系統的複雜性老是會出乎你的意料,可能在某些狀況下這個功能又會讓你望而卻步。

相關文章
相關標籤/搜索