Spring学习总结(18)——Spring整合Mysql数据库一主多从、多主多从配置
一、新建jdbc.properties配置文件
配置文件的作用大家都清楚了,是因為我們可以在applicationContext.xml文件中以${master.jdbc.url}的形式讀取內容,配置文件一般在/src/目錄下。
二、配置applicationContext.xml
上面配置我省略了 druid 數據連接池的一些配置和 service 層事務處理,文件并不完整,具體文件示例見GitHub:https://github.com/mafly/SpringDemo/blob/master/WebContent/WEB-INF/applicationContext.xml
如何使用阿?
我直接貼一個具體的 Service 層代碼你就完全懂了。
就是直接打標簽的形式切換就可以了,這里需要注意的有兩點,也是我們曾經踩過的坑:
1.注意事務是在何處!就是說,要在一個事務開始之前做數據源的切換。
2.不要又想寫又想讀!還是在一個事務內不要有讀的方法又有寫的方法。
到這里讀寫分離和主從動態切換數據源的配置以及使用就完整了。接下來思考:我們是不是有時候項目都是要一主多從、多主多從?
一主多從、多主多從
一主多從的架構很多人都在使用,美其名是減小讀數據的壓力,我還是保留上一篇文章的看法,可能數據安全是最大的作用,再有就是你有數據報表和數據統計系統,使用一主多從架構可以避免生產服務器的訪問壓力過大。
配置一主多從架構其實根據我們上面的設計就很簡單了,只需要在applicationContext.xml文件中配置多個從庫數據源就可以,然后當你讀取從庫時,可根據你現有的從庫數來進行一些負載均衡算法的切換,我這里就不再演示了。
多主多從是什么鬼?首先我需要說明的是多主多從這里并不是指的同一個業務數據庫,是指不同的業務數據庫,就是大家所說的「分庫分表」中的分庫,就是說我們一個項目中分出了不同的業務數據庫,然后這些不同的數據庫也可以有多個從庫,可不是一個業務數據庫有多個主庫、多個從庫,據我所知, MySql 的復制也是不建議這么做的。
了解清楚概念后,我們目標就清晰了,其實根據我們的數據源切換架構,再接著配置多個數據源就可以了。其實也是這么簡單的意思,比如:項目中有個金幣系統,用戶完成我們期望的操作就會給他相應的金幣,他可以用金幣兌換我們商城里的物品。這時候,其實我們就應該有個金幣庫了,不要再去和業務共用一個數據庫,所以,這時候就會用到我們「多主多從」的架構了。
轉載于:https://www.cnblogs.com/zhanghaiyang/p/7212882.html
總結
以上是生活随笔為你收集整理的Spring学习总结(18)——Spring整合Mysql数据库一主多从、多主多从配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle11gR2 数据库客户端PL
- 下一篇: Data Guard搭建困境突围(一)