Mycat讀寫分離

MyCat的讀寫分離是建⽴在MySQL主從複製基礎之上實現的,因此必須先搭建MySQL的主從複製。
數據庫讀寫分離對於⼤型系統或者訪問量很⾼的互聯⽹應⽤來講,是必不可少的⼀個重要功能。對於MySQL來講,標準的讀寫分離是主從模式,⼀個寫節點Master後⾯跟着多個讀節點,讀節點的數量取決於系統的壓⼒,一般是1-3個讀節點的配置
image.png
Mycat實現的讀寫分離和⾃動切換機制,須要mysql的主從複製機制配合。mysql

Mycat配置
Mycat 1.4 ⽀持MySQL主從複製狀態綁定的讀寫分離機制,讓讀更加安全可靠,配置以下:
image.png
(1) 設置 balance="1"與writeType="0"
Balance參數設置:sql

  1. balance=「0」, 全部讀操做都發送到當前可⽤的writeHost上。
  2. balance=「1」,全部讀操做都隨機的發送到readHost。
  3. balance=「2」,全部讀操做都隨機的在writeHost、readhost上分發

WriteType參數設置:數據庫

  1. writeType=「0」, 全部寫操做都發送到可⽤的writeHost上。
  2. writeType=「1」,全部寫操做都隨機的發送到readHost。
  3. writeType=「2」,全部寫操做都隨機的在writeHost、readhost分上發。

「readHost是從屬於writeHost的,即意味着它從那個writeHost獲取同步數據,所以,當它所屬的writeHost宕機了,則它也不會再參與到讀寫分離中來,即「不⼯做了」,這是由於此時,它的數據已經「不可靠」了。基於這個考慮,⽬前mycat 1.3和1.4版本中,若想⽀持MySQL⼀主⼀從的標準配置,而且在主節點宕機的狀況下,從節點還能讀取數據,則須要在Mycat⾥配置爲兩個writeHost並設置banlance=1。」
(2) 設置 switchType="2" 與slaveThreshold="100"
switchType ⽬前有三種選擇:
-1:表示不⾃動切換
1:默認值,⾃動切換
2:基於MySQL主從同步的狀態決定是否切換
Mycat⼼跳檢查語句配置爲 show slave status ,dataHost 上定義兩個新屬性: switchType="2" 與slaveThreshold="100",此時意味着開啓MySQL主從複製狀態綁定的讀寫分離與切換機制。Mycat⼼跳機制經過檢測 show slave status 中的 "Seconds_Behind_Master", "Slave_IO_Running","Slave_SQL_Running" 三個字段來肯定當前主從同步的狀態以及Seconds_Behind_Master主從複製時延。安全

相關文章
相關標籤/搜索