国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

mysql數據庫實現讀寫分離

edagarli / 527人閱讀

摘要:讀寫分離的實現方式使用的驅動構造不同的數據庫連接池,在層通過判斷方法的讀寫類型,讀方法使用從數據庫連接池,寫方法使用主數據庫連接池使用阿里的或的來實現分庫分表,讀寫分離和負載均衡等處理。

1.mysql讀寫分離背景

在項目中使用mysql數據庫,所有的增刪改查操作都在主庫處理,隨著查詢訪問量的增加,單庫處理的壓力驟增,為了防止主庫故障,使用一主多從的方式,通過讀寫分離,把所有的查詢處理都放到從服務器上,減少單點故障導致整個服務掛掉的情況。

2.mysql讀寫分離的實現方式

使用mysql的com.mysql.jdbc.ReplicationDriver驅動

構造不同的數據庫連接池,在service層通過判斷方法的讀寫類型,讀方法使用從數據庫連接池,寫方法使用主數據庫連接池

使用阿里的mycat或360的Atlas來實現分庫分表,讀寫分離和負載均衡等處理。

3.使用ReplicationDriver驅動實現讀寫分離

(1)mysql配置數據庫連接信息

url=jdbc:mysql:replication://192.168.2.101:3306,192.168.2.102:3306/test
username=*****
password=*****
driver=com.mysql.jdbc.ReplicationDriver

(2)設置事務不自動提交,并且事務只讀

   使用spring的事務處理比較簡單,使用注解@Transactional,把readOnly設置true,或者寫一個aop切面,統一設置需要的方法為可讀模式。
@Transactional(isolation=Isolation.DEFAULT,propagation = Propagation.REQUIRED,readOnly = true)

(3)測試是否真的實現了讀寫分離

使用命令SHOW FULL PROCESSLIST查看從數據庫是否有指定服務器的連接信息。
一主多從,從主庫向從庫進行數據同步,修改從數據庫的指定數據,查詢修改的數據來確認數據是否來自從庫。
4.構造不同的連接池,通過程序自主的確認訪問哪個數據庫

實現思想:構建一個主庫的連接池1,構建一個從庫的連接池2,使用spring aop對service層的處理做一個切面,系統定義以query,get和find等開頭的方法為讀處理,使用連接池2,從從庫中獲取數據;其他的開頭的方法默認使用連接池1。

參考文章:

http://blog.csdn.net/jack8598...

5.使用阿里的mycat或360的Atlas來實現讀寫分離

阿里的mycat和360的atlas可以實現分庫分表,讀寫分離和負載均衡等功能,對應用層無感知,和正常連接數據庫沒有區別,耦合性較小。

在項目中使用ReplicationDriver驅動簡單實現了讀寫分離,如果數據量超大,而且要做mysql的負載均衡,則要用到中間件來做一層代理來實現。
大家可以關注我的公眾號:不知風在何處,相互溝通,共同進步。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67330.html

相關文章

  • UCloud MySQL據庫讀寫分離

    摘要:讀寫分離中間件具有獨立的。變量語句將被廣播考慮到節點間數據一致性問題,只會分發到主節點。節點健康檢查,提升數據庫系統可用性。UCloud MySQL云數據庫讀寫分離 背景 數據顯示,關系型數據庫在OLTP業務下96.87%都在等待讀I/O,而處理器計算僅僅占了5.3%,這說明要提高數據庫的QPS性能,關鍵的一點是提高系統的IO能力。 另一個數據表明, 大多數業務對數據庫的訪...

    joywek 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<