系列導航
本篇博客開始給大家介紹一下mycat,個人感覺這個東西非常不錯填補了關系型數據庫分布式部署領域的一個空白。
后續將圍繞mycat他能干什么?mycat是什么?怎么用?來介紹mycat,當然重點是怎么用,這將伴隨一系列的樣例來給大家介紹。
怎么用將圍繞以下幾點來逐步給大家講解
1、mycat的安裝
2、mycat的實驗數據
3、mycat垂直分布及全局表實驗
4、mycat水平分布實驗
5、mycat全局ID自增實驗
6、mycatER分片表實驗
序:
所有介紹的內容都是參考Mycat權威指南和一個視頻教程內容,然后親自動手驗證過得,非常感謝視頻的錄制者能夠分享,我也繼承分享精神繼續分享給大家,有什么建議歡迎大家一起討論。博客中的文字描述都是我個人的體會肯定會有不全面的地方甚至不對的地方,希望大家指正。
一、首先說mycat能干什么?
答案:他能夠將mysql數據組成一個分布式的集群,可以把物理上多個獨立的mysql數據庫,搞成一個邏輯上的整體,使開發者感受不到的物理上的獨立。這些物理上獨立的mysql數據庫按照配置不同各自完成各自的工作。
二、為什么要介紹mycat?
這些年隨着互聯網、物聯網的發展產生了大量的數據,伴隨而生的涌現出一批新型的nosql數據庫比如mongodb、redis還有消息隊列kafka、這些新型的nosql數據庫和消息隊列,發展非常快以更快的讀寫速度、高可用的架構設計而搶占了傳統關系型數據庫的一些市場份額。但我認為傳統數據庫的優勢是無法撼動的,MongoDB讀寫是快你讓他關聯查詢試試。總之各有各的優勢不同的業務場景找到最適合的技術方案就ok。
mongodb、redis、kafka這些都可以搞成集群甚至搞成分片來提整體的性能並且實現了高可用。但是咱們傳統的關系型數據庫貌似沒有這樣的能力。阿里巴巴修改了mysql的源碼搞成了mysql的集群而替代了昂貴的oracle,但我們並沒有能方便的使用該項技術,起碼我沒有在網上找到我想要的東西。
在尋找關系型數據分布式部署的過程中我看過360 Atlas、OneProxy、DRDS、Cobar但是都因為學習資料少而沒有搞成,只有mycat比較靠譜。
關系型數據庫本人非常推崇oracle,oracle11g簡直就是單機版數據庫的巔峰,他的原理就像一件藝術品一樣以最優的方式運行着,可能就是因為oracle11g單機版的性能太過強大,絕大多數應用場景都可以滿足需求,所以關系型數據庫的分布式的研究並沒有那么迫切,反正可以用去研究干嘛。但隨着業務量不斷地增加關系型數據庫的分布式部署的需求也逐漸增加。mycat就應用而生了,雖然我非常喜歡oracle不是那么喜歡mysql(oracle用起來像開寶馬,mysql用起來像是在開QQ 哈哈純屬個人見解)
三、mycat是什么?
Mycat是用於數據庫之間分庫分表的中間件,簡單的來說就是用於在多個數據庫上的表通過mycat代理連接,實現一張或者多張分庫或分表的大表數據根據定義的分片規則聚合展示,在這里就簡單的說一說Mycat。Mycat的前身是阿里的Cobar,在2013年時Cobar在社區使用過程中發現存在一些比較嚴重的問題,及其使用限制,經過Mycat發起人第一次改良,第一代改良版——Mycat誕生。 Mycat開源以后,一些Cobar的用戶參與了Mycat的開發,最終Mycat發展成為一個由眾多軟件公司的實力派架構師和資深開發人員維護的社區型開源軟件。
好了本章主要介紹mycat能干什么,他是什么?下章開始正式動手來實現了敬請期待。