亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MyCat讀寫分離配置

發布時間:2020-07-24 07:42:11 來源:網絡 閱讀:167 作者:艾弗森哇 欄目:數據庫

? ? 讀寫分離在我們配置數據庫集群時是必然會考慮的一個點,因為這可以有效的降低主庫的負載,并且在讀多余寫的情況下,絕大部分的讀請求都可以分發到各個不同的從庫上。即使從庫負載不夠,也可以通過增加從庫的方式來提升整體的查詢效率。本文主要講解MyCat如何進行讀寫分離的配置。

1. 環境搭建

????????為了搭建讀寫分離數據庫架構,這里我們需要準備兩個數據庫,一個作為主庫,一個作為從庫。本文所使用的方式是通過docker搭建的主從架構,因而可以在本機上直接運行。具體配置如下:

角色主機名主機ip主機端口
主庫mysql-master127.0.0.13306
從庫mysql-slave127.0.0.13307

????????關于docker如何搭建MySQL主從數據庫,讀者朋友可以閱讀本人的文章(Docker搭建MySQL主從集群)。讀者朋友也可以通過虛擬機的方式搭建主從數據庫,這里就不再贅述。

2. MyCat配置

????????關于MyCat的配置,其主要是需要在某一個數據庫節點上同時指定主庫和從庫。下面是一個示例:

<?xml?version="1.0"?><!DOCTYPE?mycat:schema?SYSTEM?"schema.dtd"><mycat:schema?xmlns:mycat="http://io.mycat/">
??<schema?name="mydb"?checkSQLschema="true"?sqlMaxLimit="100">
????<table?name="t_user"?primaryKey="id"?autoIncrement="true"?dataNode="dn1"/>
??</schema>

??<dataNode?name="dn1"?dataHost="dhost1"?database="db1"/>
??
??<dataHost?name="dhost1"?maxCon="1000"?minCon="10"?balance="1"?writeType="0"?
????????????switchType="-1"?dbType="mysql"?dbDriver="native">
????<heartbeat>select?user()</heartbeat>
????<writeHost?host="hostM1"?url="localhost:3306"?user="root"?password="root"/>
????<writeHost?host="hostS1"?url="localhost:3307"?user="root"?password="root"/>
??</dataHost></mycat:schema>

????????關于上述配置,主要有如下幾點需要說明:

  • xml的配置順序schemadataNodedataHost的順序不能發生變化;

  • dataHost中通過writeHost將主庫和從庫都配置進去,MyCat可以通過show master status來檢測具體哪一個是主庫,哪一個是從庫;

  • dataHost上有兩個參數:balanceswitchType

    • -1表示當master掛了的時候,主從不進行自動切換;

    • 1表示當master掛了的時候,主從進行自動切換;

    • 2表示當master掛了的時候,基于MySQL的主從復制狀態來決定是否進行自動切換;鄭州不孕不育醫院性價比哪家好:http://yyk.39.net/zz3/zonghe/1d427.html

    • 3表示當master掛了的時候,基于MySQL galary cluster的模式進行自動切換。

    • 0表示不開啟讀寫分離機制,所有的讀寫操作都發送到writeHost上;

    • 1表示開始讀寫分離機制,所有的讀操作都會發送到slave和standby-master上,所謂的standby-master指的是當前master的備用master節點;

    • 2表示所有的讀操作隨機的在master和slave上分發;

    • 3表示所有的讀操作都分發到slave上,而master和standby-master都不負擔讀操作;

    • 這里balance可以指定四個值,其各個值的含義如下:

    • 這里switchType也可以指定四個值,各個值的含義如下:https://www.jianshu.com/p/3b9c64fdcec9

  • 在進行讀寫分離的時候,如果master節點宕機,那么此時,slave節點還是可以正常提供讀操作的,而對于客戶端發送的寫操作,將會拋出異常。

????????上述配置是讀寫分離的第一種方式,還有一種配置方式,就是將slave節點寫到master節點內部,從而表明從屬關系。其配置方式如下:

<?xml?version="1.0"?><!DOCTYPE?mycat:schema?SYSTEM?"schema.dtd"><mycat:schema?xmlns:mycat="http://io.mycat/">
??<schema?name="mydb"?checkSQLschema="true"?sqlMaxLimit="100">
????<table?name="t_user"?primaryKey="id"?autoIncrement="true"?dataNode="dn1"/>
??</schema>

??<dataNode?name="dn1"?dataHost="dhost1"?database="db1"/>
??
??<dataHost?name="dhost1"?maxCon="1000"?minCon="10"?balance="1"?writeType="0"?
????????????switchType="-1"?dbType="mysql"?dbDriver="native">
????<heartbeat>select?user()</heartbeat>
????<writeHost?host="hostM1"?url="localhost:3306"?user="root"?password="root">
??????<readHost?host="hostS1"?url="localhost:3307"?user="root"?password="root"?weight="1"/>
????</writeHost>
??</dataHost></mycat:schema>

????????對于這種配置方式,有相關的文章說,如果master宕機,那么這種方式配置的slave機器就無法提供讀服務,但是根據筆者的測試,其還是可以正常提供讀服務的,因而上述兩種方式沒有特別大的區別。

3. 小結

????????本文主要講解了MyCat主從模式搭建的兩種方式,并且詳細講解了其配置方式中需要注意的點。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苗栗市| 大邑县| 平泉县| 台前县| 黔西县| 从江县| 来安县| 霍林郭勒市| 玉屏| 乐亭县| 沙坪坝区| 尼木县| 花莲市| 民权县| 商都县| 武穴市| 陕西省| 余江县| 当雄县| 凤山县| 曲周县| 自治县| 定边县| 建水县| 水富县| 四会市| 香格里拉县| 旺苍县| 且末县| 横山县| 镇平县| 浙江省| 昌平区| 察隅县| 瑞安市| 外汇| 梅州市| 铁岭县| 深水埗区| 响水县| 贵定县|