這篇文章主要介紹了如何利用mycat實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)讀寫(xiě)分離,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)專(zhuān)注于嵊州企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開(kāi)發(fā),商城網(wǎng)站定制開(kāi)發(fā)。嵊州網(wǎng)站建設(shè)公司,為嵊州等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站建設(shè),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
什么是MyCAT
一個(gè)徹底開(kāi)源的,面向企業(yè)應(yīng)用開(kāi)發(fā)的大數(shù)據(jù)庫(kù)集群
支持事務(wù)、ACID、可以替代MySQL的加強(qiáng)版數(shù)據(jù)庫(kù)
一個(gè)可以視為MySQL集群的企業(yè)級(jí)數(shù)據(jù)庫(kù),用來(lái)替代昂貴的Oracle集群
一個(gè)融合內(nèi)存緩存技術(shù)、NOSQL技術(shù)、HDFS大數(shù)據(jù)的新型SQL Server
結(jié)合傳統(tǒng)數(shù)據(jù)庫(kù)和新型分布式數(shù)據(jù)倉(cāng)庫(kù)的新一代企業(yè)級(jí)數(shù)據(jù)庫(kù)產(chǎn)品
一個(gè)新穎的數(shù)據(jù)庫(kù)中間件產(chǎn)品
MyCAT關(guān)鍵特性
支持SQL92標(biāo)準(zhǔn)
支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常見(jiàn)SQL語(yǔ)法
遵守MySQL原生協(xié)議,跨語(yǔ)言,跨平臺(tái),跨數(shù)據(jù)庫(kù)的通用中間件代理。
基于心跳的自動(dòng)故障切換,支持讀寫(xiě)分離,支持MySQL主從,以及galera cluster集群。
支持Galera for MySQL集群,Percona Cluster或者M(jìn)ariaDB cluster
基于Nio實(shí)現(xiàn),有效管理線程,解決高并發(fā)問(wèn)題。
支持?jǐn)?shù)據(jù)的多片自動(dòng)路由與聚合,支持sum,count,max等常用的聚合函數(shù),支持跨庫(kù)分頁(yè)。
支持單庫(kù)內(nèi)部任意join,支持跨庫(kù)2表join,甚至基于caltlet的多表join。
支持通過(guò)全局表,ER關(guān)系的分片策略,實(shí)現(xiàn)了高效的多表join查詢。
支持多租戶方案。
支持分布式事務(wù)(弱xa)。
支持XA分布式事務(wù)(1.6.5)。
支持全局序列號(hào),解決分布式下的主鍵生成問(wèn)題。
分片規(guī)則豐富,插件化開(kāi)發(fā),易于擴(kuò)展。
強(qiáng)大的web,命令行監(jiān)控。
支持前端作為MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 MongoDB 、巨杉。
支持密碼加密
支持服務(wù)降級(jí)
支持IP白名單
支持SQL黑名單、SQL注入攻擊攔截
支持prepare預(yù)編譯指令
支持非堆內(nèi)存(Direct Memory)聚合計(jì)算
支持PostgreSQL的native協(xié)議
支持MySQL和oracle存儲(chǔ)過(guò)程,out參數(shù)、多結(jié)果集返回
支持zookeeper協(xié)調(diào)主從切換、zk序列、配置zk化
支持庫(kù)內(nèi)分表
集群基于ZooKeeper管理,在線升級(jí),擴(kuò)容,智能優(yōu)化,大數(shù)據(jù)處理(2.0開(kāi)發(fā)版)。
1、這里是在mysql主從復(fù)制實(shí)現(xiàn)的基礎(chǔ)上,利用mycat做讀寫(xiě)分離,架構(gòu)圖如下:
2、Demo
2.1 在mysql master上創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建db1
2.2 在數(shù)據(jù)庫(kù)db1創(chuàng)建表student
同時(shí),因?yàn)榕渲煤昧薽ysql主從復(fù)制,在mysql slave上也有一樣數(shù)據(jù)庫(kù)和表
2.3 編輯 mycat的配置文件server.xml
<!--表示mycat的登錄用戶名--> <user name="test"> <!--表示mycat的登錄密碼--> <property name="password">test</property> <!--表示mycat的邏輯數(shù)據(jù)庫(kù)名稱,可以自定義--> <property name="schemas">TESTDB</property> </user> <user name="user"> <property name="password">user</property> <property name="schemas">TESTDB</property> <property name="readOnly">true</property> </user>
2.4編輯mycat的配置文件schema.xml
<!--TESTDB表示mycat的邏輯數(shù)據(jù)庫(kù)名稱 當(dāng)schema節(jié)點(diǎn)沒(méi)有子節(jié)點(diǎn)table的時(shí)候,一定要有dataNode屬性存在(指向mysql真實(shí)數(shù)據(jù)庫(kù)), --> <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"> </schema> <!--指定master的數(shù)據(jù)庫(kù)db1--> <dataNode name="dn1" dataHost="192.168.0.4" database="db1" /> <!--指定mastet的ip --> <dataHost name="192.168.0.4" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <!--表示mysql的心跳狀態(tài)--> <heartbeat>select user()</heartbeat> <!-- master負(fù)責(zé)寫(xiě) --> <writeHost host="hostM1" url="192.168.0.4:3306" user="root" password="admin"> <!--slave負(fù)責(zé)讀--> <readHost host="hostS2" url="192.168.0.5:3306" user="root" password="admin" /> </writeHost> </dataHost>
到這里,利用mycat做讀寫(xiě)分離就已經(jīng)配置完了
注意 dataHost節(jié)點(diǎn)的下面三個(gè)屬性
balance, switchType, writeType
balance="0", 不開(kāi)啟讀寫(xiě)分離機(jī)制,所有讀操作都發(fā)送到當(dāng)前可用的writeHost上。
balance="1",全部的readHost與stand by writeHost參與select語(yǔ)句的負(fù)載均衡,簡(jiǎn)單的說(shuō),當(dāng)雙主雙從模式(M1->S1,M2->S2,并且M1與M2互為主備),正常情況下,M2,S1,S2都參與select語(yǔ)句的負(fù)載均衡。
balance="2",所有讀操作都隨機(jī)的在writeHost、readhost上分發(fā)。
balance="3",所有讀請(qǐng)求隨機(jī)的分發(fā)到writeHost下的readhost執(zhí)行,writeHost不負(fù)擔(dān)讀壓力
writeType表示寫(xiě)模式
writeType="0",所有的操作發(fā)送到配置的第一個(gè)writehost
writeType="1",隨機(jī)發(fā)送到配置的所有writehost
writeType="2",不執(zhí)行寫(xiě)操作
switchType指的是切換的模式,目前的取值也有4種:
switchType=‘-1‘ 表示不自動(dòng)切換
switchType=‘1‘ 默認(rèn)值,表示自動(dòng)切換
switchType=‘2‘ 基于MySQL主從同步的狀態(tài)決定是否切換,心跳語(yǔ)句為show slave status
switchType=‘3‘基于MySQL galary cluster的切換機(jī)制(適合集群)(1.4.1),心跳語(yǔ)句為show status like ‘wsrep%‘。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何利用mycat實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)讀寫(xiě)分離”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
網(wǎng)站名稱:如何利用mycat實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)讀寫(xiě)分離
鏈接地址:http://sd-ha.com/article16/popgdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、商城網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、搜索引擎優(yōu)化、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)