信用網(wǎng)站建設內(nèi)容專業(yè)seo網(wǎng)站
1、MyCat概述?
? ? 從定義和分類來看,它是一個開源的分布式數(shù)據(jù)庫系統(tǒng),是一個實現(xiàn)了MySQL協(xié)議的Server,前端用戶可以把它看做是一個數(shù)據(jù)庫代理,用MySQL客戶端工具和命令行訪問,而其后端可以用MySQL原生(Native)協(xié)議與多個MySQL服務器通信,也可以用JDBC協(xié)議與大多數(shù)主流數(shù)據(jù)庫服務器通信,其核心功能是讀寫分離、數(shù)據(jù)分片(垂直拆分分庫、水平拆分分表、垂直拆分+水平拆分)和多數(shù)據(jù)源整合。?
? ? Mycat發(fā)展到目前版本,已經(jīng)不在是一個單純的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流數(shù)據(jù)庫,也支持MongoDB、NOSQL方式等存儲,未來還會支持更多類型的存儲。而在最終用戶看來,無論是那種存儲方式,在Mycat里,都是一個傳統(tǒng)的數(shù)據(jù)庫表,支持標準的SQL語句進行數(shù)據(jù)的操作,這樣一來,對前端業(yè)務系統(tǒng)來說,可以大幅度降低開發(fā)難度,提升開發(fā)速度,在測試階段,可以將一表定義為任何一種Mycat支持的存儲方式,比如MySQL的MyASM表、內(nèi)存表、或者MongoDB、LeveIDB以及號稱是世界上最快的內(nèi)存數(shù)據(jù)庫MemSQL上。
2、用途&環(huán)境介紹?
- 單純的讀寫分離,此時配置最為簡單,支持讀寫分離,主從切換。
- 分表分庫,對于超過1000萬的表進行分片,最大支持1000億的單表分片。
- 多租戶應用,每個應用一個庫,但應用程序只連接Mycat,從而不改造程序本身,實現(xiàn)多租戶化。
- 報表系統(tǒng),借助于Mycat的分表能力,處理大規(guī)模報表的統(tǒng)計。
- 代替Hbase,分析大數(shù)據(jù)。
- 詢的記錄需要在3秒內(nèi)查詢出來結(jié)果, 除了基于主鍵的查詢,還可能存在范圍查詢或其他屬性查詢,此時Mycat可能是最簡單有效的選擇。
- 該實現(xiàn)需要先完成MySQL的主從復制的相關(guān)復制結(jié)構(gòu)操作。才能進行下一步操作。主從復制的相關(guān)內(nèi)容,參考《【MySQL專題】02、性能優(yōu)化之主從復制》。
PS:本地服務器采用的主從復制結(jié)構(gòu)模式為一主一從的復制結(jié)構(gòu)- Master:192.168.202.128
- Slave:192.168.202.129
- Mycat:192.168.202.130
- Master:192.168.202.128
3、安裝MyCat?
- JDK安裝&配置文檔:
參考:文檔Linux -Centos ?常見配置(靜態(tài)IP、YUM...?
鏈接:http://note.youdao.com/noteshare?id=f2d067e276add283a4db09e5536ff5c9&sub=WEB1e60f94040bd9e345cb536fbd846c9c9? - Mycat安裝
- 下載Mycat
- 解壓&環(huán)境變量
? ? 解壓mycat,根據(jù)自己部署規(guī)則,本人選擇將mycat部署在/usr/local/目錄下 ,所以我解壓mycat后,移動mycat 到/usr/local/目錄下,由于為了方便我們?nèi)粘9芾韒ycat,對其進行環(huán)境變量配置,分別需要執(zhí)行如下命令操作。(這里就不展示命令的執(zhí)行過程呢) - Mycat配置
? ? 在配置mycat之前,我們需要在mysql主復制節(jié)點mysql-master節(jié)點上,創(chuàng)建兩個mysql用戶,用于mysql數(shù)據(jù)的寫入和讀。(y由于mysql數(shù)據(jù)庫剛安裝,默認mysql的root賬號密碼為空,所以這里登陸就不需要密碼登陸,若需要管理root賬號,可以詳細去配置root賬號的安全權(quán)限問題,這里就不一一介紹呢),登陸成功后,執(zhí)行相應的賬號的創(chuàng)建、授權(quán)等(注意:生產(chǎn)環(huán)境要盡量減少權(quán)限,注意安全問題)? ?
? ??接下來,我們進入主題,mycat的文件配置。首先介紹一下mycat的目錄結(jié)構(gòu)(如果缺失tree命令,可以通過yum install tree -y 進行安裝,這里不詳細介紹,本文核心是介紹mycat部署):
conf目錄下存放的配置文件
? ?server.xml是Mycat服務器參數(shù)調(diào)整和用戶授權(quán)的配置文件?
? ?schema.xml是邏輯庫定義和表以及分片定義的配置文件,rule.xml是分片規(guī)則的配置文件,?分片規(guī)則的具體一些參數(shù)信息單獨存放為文件,也在這個目錄下,配置文件修改,需要重啟mycat或者通過9066端口reload。?
lib目錄下主要存放mycat依賴的一些jar文件。
logs:日志存放在logs/mycat.log中,每天一個文件
? 日志配置是在conf/log4.xml中,根據(jù)自己的需要可以調(diào)整輸出級別.?
? 注意:Linux下部署安裝MySQL,默認不忽略表名大小寫,需要手動到/etc/my.cnf 下配置 lower_case_table_names=1 使Linux環(huán)境下MySQL忽略表名大小寫,否則使用MyCAT的時候會提示找不到表的錯誤!?
配置核心server.xml 和 schema.xml文件,配置詳情分別如下(本文檔介紹的是基礎(chǔ)版的mycat運用,若需要更深程度的使用,可以深度研究 mycat相關(guān)知識或者持續(xù)關(guān)注文檔更新):?
關(guān)于schema.xml文件部分參數(shù)說明,不同參數(shù)配置,代表mycat采取的機制策略不一樣:?
- 下載Mycat
4、啟動MyCat?
由于我們配置了mycat的環(huán)境變量,所以可以直接使用mycat命令操作:
直接執(zhí)行mycat命令可以看出,mycat提供了 指定相關(guān)命令操作,服務器的啟動、停止,重啟等具體命令操作,這里我們需要啟動mycat,直接執(zhí)行mycat ?start 即可。?
5、驗證?
通過剛創(chuàng)建兩個賬號,在第三方工具連接mycat,若能成功,表示配置完成;?
6、思考?
-
Mycat 如何進行高可用服務架構(gòu)搭建?
-
Mycat中間件宕機如何維護?
-
Mycat 中間件的另一特性--數(shù)據(jù)拆分如何實現(xiàn)?
-
Mycat 中間件如何多語言?
-
Mycat 中間件的運行原理和實現(xiàn)原理?
7、參考資料
- http://mycat.io/
- https://www.csdn.net/article/2015-07-16/2825228
- 從零開始
- MyCAT簡易入門 - iVictor - 博客園
- 使用Mycat 做簡單的讀寫分離(一) - 大漠小狼的個人空間 - 51Testing軟件測試網(wǎng) 51Testing軟件測試網(wǎng)-軟件測試人的精神家園