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