更新時間:2020-12-11 16:01:50 來源:動力節(jié)點 瀏覽1354次
Mycat是一個開源數(shù)據(jù)庫中間件,是一個實現(xiàn)了MySQL協(xié)議的的數(shù)據(jù)庫中間件服務器,前端用戶可以把它看作是一個數(shù)據(jù)庫代理,用MySQL客戶端工具和命令行訪問,而其后端可以用MySQL原生(Native)協(xié)議與多個MySQL服務器通信,也可以用JDBC協(xié)議與大多數(shù)主流數(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配置
為了快速跑起一個Mycat demo,我們先在本地數(shù)據(jù)庫里面建立test1和test2數(shù)據(jù)庫,創(chuàng)建一個名為opt的表,字段為id(int)及name(varchar)
Mycat的主要配置文件在其conf目錄下面,分別是server.xml、schema.xml和rule.xml,為快速啟動mycat,我們按照配置的順序和主要配置項說明。
1)server.xml
這里主要配置mycat的用戶和權限信息,這里的賬戶用于后面連接mycat使用。
快速入門可以簡單這樣配置:
schemas是后面schema.xml里面配置的DB,例如:我這里配置了一個用戶名為user,密碼為666666的賬戶,默認只能訪問test的DB
<user name="user"> <property name="password">666666</property> <property name="schemas">test</property> </user>
2)schema.xml
這里主要配置數(shù)據(jù)庫信息,一個schema就是一個邏輯庫,可以理解為Mycat管理的一個數(shù)據(jù)庫DB(實際上不存在,是一個虛擬的概念)name屬性和server.xml里面對應。
table是Mycat的邏輯表,這里我們配置一個名為opt的邏輯表
dataNode屬性是將其綁定在真實數(shù)據(jù)庫中的數(shù)據(jù)節(jié)點中,這里我們配置了兩個dataNode,分別是test1數(shù)據(jù)庫和test2數(shù)據(jù)庫,注意,這兩個數(shù)據(jù)庫的真實表名需和table的name一致
dataHost屬性就是我們熟悉的mysql連接,這里我們都用本地作為一臺服務器,也可以配置不同服務器上的不同mysql,這里還可以配置讀寫分離,我們先不考慮。
rule屬性就是分片規(guī)則,這里用的是名稱,需在下一步的rule.xml里面定義好
<schema name="test" checkSQLschema="false" sqlMaxLimit="100"> <!-- 分片表配置 --> <table name="opt" dataNode="dn$1-2" rule="rule1" /> </schema> <dataNode name="dn1" dataHost="localhost1" database="test1" /> <dataNode name="dn2" dataHost="localhost1" database="test2" /> <heartbeat>select user()</heartbeat> <writeHost host="hostS1" url="localhost:3306" user="root" password="666666" /> </dataHost>
3)rule.xml
這里我們主要配置的是分片規(guī)則,Mycat支持很多分片規(guī)則,我們使用的是一個較為簡單的取模規(guī)則,即根據(jù)columns標簽里面的id屬性來取模,count屬性定義為數(shù)據(jù)節(jié)點的個數(shù)。
<tableRule name="rule1"> <rule> <columns>id</columns> <algorithm>mod-long</algorithm> </rule> </tableRule> <function name="mod-long" class="io.mycat.route.function.PartitionByMod"> <!-- how many data nodes --> <property name="count">2</property> </function>
動力節(jié)點推出的Mycat視頻教程全套免費下載,這是一套超級詳細的Mycat培訓視頻,本套Mycat視頻教程適合Mycat分布式數(shù)據(jù)庫零基礎的學員學習,這套Mycat培訓視頻通俗易懂,是你學習Mycat分布式數(shù)據(jù)庫的好幫手。
課程學習目錄
1.MyCat視頻教程:背景
2.MyCat視頻教程:MyCat介紹
3.MyCat視頻教程:能做什么-讀寫分離
4.MyCat視頻教程:能做什么-水平拆分
5.MyCat視頻教程:能做什么-垂直拆分
6.MyCat視頻教程:安裝MyCat
7.MyCat視頻教程:配置文件解讀-server文件
8.MyCat視頻教程:配置文件解讀-schema
9.MyCat視頻教程:讀寫分離配置
10.MyCat視頻教程:讀寫分離測試
11.MyCat視頻教程:Java代碼鏈接MyCat
12.MyCat視頻教程:水平拆分
13.MyCat視頻教程:水平拆分測試
14.MyCat視頻教程:垂直拆分
15.MyCat視頻教程:主鍵生成策略
16.MyCat視頻教程:總結
主講老師:動力節(jié)點秦老師
講師簡介
沈陽師范大學計算機專業(yè)碩士研究生,15年以上軟件研發(fā)及管理經(jīng)驗,曾就職于神州數(shù)碼、東軟、甲骨文等知名軟件企業(yè);先后擔任Java高級軟件工程師、項目經(jīng)理、系統(tǒng)架構師等職務;對JVM及Java的面向?qū)ο笥泻苌羁痰睦斫猓痪∣racle、MySQL、DB2等底層實現(xiàn)原理;精通Spring、SpringMVC、MyBatis框架下的開發(fā);授課條理清晰,理論與實踐緊密結合,注重學生的動手和應用能力;曾主持開發(fā)北京市電信計費系統(tǒng)、某院辦公廳信息系統(tǒng)、遼寧省某市人事局檔案信息管理系統(tǒng)、遼寧沈陽市熱線報修網(wǎng)、甘肅省張掖市小微企業(yè)服務發(fā)展平臺等中大型項目,擅長企業(yè)及互聯(lián)網(wǎng)應用層級的高并發(fā)和分布式框架。
以上就是對“Mycat視頻講解,入門及應用”的介紹,希望對大家有所幫助,還想學習更多關于Java的課程,可以關注動力節(jié)點官網(wǎng)Java視頻教程,免費下載學習。
0基礎 0學費 15天面授
有基礎 直達就業(yè)
業(yè)余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習