天天看點

mycat讀寫分離

隻需要讀寫分離的功能,分庫分表的都不需要。

涉及到的配置檔案:

1.conf/server.xml

主要配置的是mycat的使用者名和密碼,mycat的使用者名和密碼和mysql的使用者名密碼是分開的,應用連接配接mycat就用這個使用者名和密碼。

高可用性以及讀寫分離

mycat的讀寫分離機制如下:

• 事務内的sql,全部走寫節點,除非某個select語句以注釋/*balance*/開頭

• 自動送出的select語句會走讀節點,并在所有可用讀節點中間随機負載均衡

• 當某個主節點當機,則其全部讀節點都不再被使用,因為此時,同步失敗,資料已經不是最新的,mycat會采用另外一個主節點所對應的全部讀節點來實作select負載均衡。

• 當所有主節點都失敗,則為了系統高可用性,自動送出的所有select語句仍将送出到全部存活的讀節點上執行,此時系統的很多頁面還是能出來資料,隻是使用者修改或送出會失敗。

datahost的balance屬性設定為:

• 0,不開啟讀寫分離機制

• 1,全部的readhost與stand by

writehost參與select語句的負載均衡,簡單的說,當雙主雙從模式(m1->s1,m2->s2,并且m1與

m2互為主備),正常情況下,m2,s1,s2都參與select語句的負載均衡。

• 2,所有的readhost與writehost都參與select語句的負載均衡,也就是說,當系統的寫操作壓力不大的情況下,所有主機都可以承擔負載均衡。

一個datahost元素,表明進行了資料同步的一組資料庫,dba需要保證這一組資料庫伺服器是進行了資料同步複制的。writehost相當于master

db server,而旗下的readhost則是與從資料庫同步的slave db

server。當datahost配置了多個writehost的時候,任何一個writehost當機,mycat

都會自動檢測出來,并嘗試切換到下一個可用的writehost。

mycat支援高可用性的企業級特性,根據您的應用特性,可以配置如下幾種政策:

• 後端資料庫配置為一主多從,并開啟讀寫分離機制。

• 後端資料庫配置為雙主雙從(多從),并開啟讀寫分離機制

• 後端資料庫配置為多主多從,并開啟讀寫分離機制

後面兩種配置,具有更高的系統可用性,當其中一個寫節點(主節點)失敗後,mycat會偵測出來(心跳機制)并自動切換到下一個寫節點,mycat在任何時候,隻會往一個寫節點寫資料。