所謂的讀寫分離就是事先準(zhǔn)備兩種類型的MySQL數(shù)據(jù)庫,一種做更新操作(master)、一種做查詢操作(slave)。當(dāng)應(yīng)用系統(tǒng)需要更新數(shù)據(jù)時調(diào)用master,查詢數(shù)據(jù)時調(diào)用slave。這樣做的好處就是將單一數(shù)據(jù)庫的業(yè)務(wù)處理分擔(dān)給多個數(shù)據(jù)庫,也可以理解為負(fù)載均衡,這樣就有一個問題,master的數(shù)據(jù)什么時候通過哪種方式同步到slave中呢?這時候就用到了主從復(fù)制了,主從復(fù)制提供了多種方式將Master中的數(shù)據(jù)同步到Slave中,具體如何實(shí)踐請參考網(wǎng)絡(luò)上其他文章。
下邊通過一張圖來看下系統(tǒng)結(jié)構(gòu):
上邊說到了利用主從復(fù)制實(shí)現(xiàn)讀寫分離來提高系統(tǒng)的負(fù)載能力,其實(shí)還應(yīng)該再加上一個Master來實(shí)現(xiàn)數(shù)據(jù)庫系統(tǒng)的高可用性,這樣就算是其中任何一個數(shù)據(jù)庫服務(wù)器宕機(jī)也不影響系統(tǒng)業(yè)務(wù)使用。
關(guān)于應(yīng)用系統(tǒng)如何實(shí)現(xiàn)讀寫分離、高可用性請根據(jù)具體的項目情況,例如:在spring項目中配置多個數(shù)據(jù)源,使用aop切入點(diǎn)根據(jù)save*、update*、delete*等方法調(diào)用master數(shù)據(jù)源,根據(jù)find*、get*、query*來調(diào)用slave數(shù)據(jù)源。
上一篇 Oracle非關(guān)鍵文件恢復(fù),日志成員、臨時文件、索引表空間、口令文件(密碼文件)
下一篇 HDU 5045 Contest 期望+狀壓dp 2014 ACM/ICPC Asia Regional Shanghai Online