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