摘要:讀寫分離的實現(xiàn)方式使用的驅(qū)動構(gòu)造不同的數(shù)據(jù)庫連接池,在層通過判斷方法的讀寫類型,讀方法使用從數(shù)據(jù)庫連接池,寫方法使用主數(shù)據(jù)庫連接池使用阿里的或的來實現(xiàn)分庫分表,讀寫分離和負載均衡等處理。
1.mysql讀寫分離背景
在項目中使用mysql數(shù)據(jù)庫,所有的增刪改查操作都在主庫處理,隨著查詢訪問量的增加,單庫處理的壓力驟增,為了防止主庫故障,使用一主多從的方式,通過讀寫分離,把所有的查詢處理都放到從服務(wù)器上,減少單點故障導(dǎo)致整個服務(wù)掛掉的情況。
2.mysql讀寫分離的實現(xiàn)方式使用mysql的com.mysql.jdbc.ReplicationDriver驅(qū)動
構(gòu)造不同的數(shù)據(jù)庫連接池,在service層通過判斷方法的讀寫類型,讀方法使用從數(shù)據(jù)庫連接池,寫方法使用主數(shù)據(jù)庫連接池
使用阿里的mycat或360的Atlas來實現(xiàn)分庫分表,讀寫分離和負載均衡等處理。
3.使用ReplicationDriver驅(qū)動實現(xiàn)讀寫分離(1)mysql配置數(shù)據(jù)庫連接信息
url=jdbc:mysql:replication://192.168.2.101:3306,192.168.2.102:3306/test username=***** password=***** driver=com.mysql.jdbc.ReplicationDriver
(2)設(shè)置事務(wù)不自動提交,并且事務(wù)只讀
使用spring的事務(wù)處理比較簡單,使用注解@Transactional,把readOnly設(shè)置true,或者寫一個aop切面,統(tǒng)一設(shè)置需要的方法為可讀模式。
@Transactional(isolation=Isolation.DEFAULT,propagation = Propagation.REQUIRED,readOnly = true)
(3)測試是否真的實現(xiàn)了讀寫分離
使用命令SHOW FULL PROCESSLIST查看從數(shù)據(jù)庫是否有指定服務(wù)器的連接信息。 一主多從,從主庫向從庫進行數(shù)據(jù)同步,修改從數(shù)據(jù)庫的指定數(shù)據(jù),查詢修改的數(shù)據(jù)來確認數(shù)據(jù)是否來自從庫。4.構(gòu)造不同的連接池,通過程序自主的確認訪問哪個數(shù)據(jù)庫
實現(xiàn)思想:構(gòu)建一個主庫的連接池1,構(gòu)建一個從庫的連接池2,使用spring aop對service層的處理做一個切面,系統(tǒng)定義以query,get和find等開頭的方法為讀處理,使用連接池2,從從庫中獲取數(shù)據(jù);其他的開頭的方法默認使用連接池1。
參考文章:
5.使用阿里的mycat或360的Atlas來實現(xiàn)讀寫分離http://blog.csdn.net/jack8598...
阿里的mycat和360的atlas可以實現(xiàn)分庫分表,讀寫分離和負載均衡等功能,對應(yīng)用層無感知,和正常連接數(shù)據(jù)庫沒有區(qū)別,耦合性較小。
在項目中使用ReplicationDriver驅(qū)動簡單實現(xiàn)了讀寫分離,如果數(shù)據(jù)量超大,而且要做mysql的負載均衡,則要用到中間件來做一層代理來實現(xiàn)。
大家可以關(guān)注我的公眾號:不知風(fēng)在何處,相互溝通,共同進步。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67330.html
摘要:讀寫分離中間件具有獨立的。變量語句將被廣播考慮到節(jié)點間數(shù)據(jù)一致性問題,只會分發(fā)到主節(jié)點。節(jié)點健康檢查,提升數(shù)據(jù)庫系統(tǒng)可用性。UCloud MySQL云數(shù)據(jù)庫讀寫分離 背景 數(shù)據(jù)顯示,關(guān)系型數(shù)據(jù)庫在OLTP業(yè)務(wù)下96.87%都在等待讀I/O,而處理器計算僅僅占了5.3%,這說明要提高數(shù)據(jù)庫的QPS性能,關(guān)鍵的一點是提高系統(tǒng)的IO能力。 另一個數(shù)據(jù)表明, 大多數(shù)業(yè)務(wù)對數(shù)據(jù)庫的訪...
閱讀 3080·2021-11-22 15:29
閱讀 1761·2021-10-12 10:11
閱讀 1816·2021-09-04 16:45
閱讀 2307·2021-08-25 09:39
閱讀 2823·2021-08-18 10:20
閱讀 2561·2021-08-11 11:17
閱讀 475·2019-08-30 12:49
閱讀 3337·2019-08-30 12:49