av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

數(shù)據(jù)庫讀寫分離的通信方式簡介 (數(shù)據(jù)庫讀寫分離怎么通信)

數(shù)據(jù)庫讀寫分離是為了提高數(shù)據(jù)庫服務(wù)器的處理能力和穩(wěn)定性而做的一種優(yōu)化方案。按照讀寫負(fù)載不同,將數(shù)據(jù)庫分割成讀庫和寫庫,實現(xiàn)讀寫分離,減輕單一數(shù)據(jù)庫服務(wù)器的負(fù)荷,提升數(shù)據(jù)庫系統(tǒng)的整體性能和穩(wěn)定性。本文將介紹數(shù)據(jù)庫讀寫分離的通信方式。

1. 主從復(fù)制方式

主從復(fù)制是數(shù)據(jù)庫讀寫分離的一種常見實現(xiàn)方式。它通過一個主數(shù)據(jù)庫將訪問前來的寫請求轉(zhuǎn)發(fā)到一個或多個從副本,之后再進(jìn)行讀操作。寫請求僅在主數(shù)據(jù)庫上執(zhí)行,而讀請求則在從副本上執(zhí)行。主從復(fù)制方式的特點如下:

優(yōu)點:

1. 通過主從復(fù)制,從服務(wù)被允許快速的復(fù)制主服務(wù)上的數(shù)據(jù),獲得部分信息的讀服務(wù),數(shù)據(jù)時間的延遲較低,常??梢赃_(dá)到毫秒級別。

2. 寫入操作在主服務(wù)上進(jìn)行,主服務(wù)負(fù)責(zé)保證數(shù)據(jù)的一致性,以及一定的寫入性能。

缺點:

1. 主從復(fù)制依賴于主從之間的數(shù)據(jù)同步,因此寫入在主切換時可能會出現(xiàn)數(shù)據(jù)丟失或不一致的情況。

2. 從數(shù)據(jù)庫只能用于讀操作,不能進(jìn)行寫操作,因此需要在主副本之間進(jìn)行一些數(shù)據(jù)同步措施。

2. 分區(qū)方式

分區(qū)方式是另一種數(shù)據(jù)庫讀寫分離的實現(xiàn)方式,它將數(shù)據(jù)按照某種規(guī)則分成多個分區(qū),寫操作只在一個分區(qū)中進(jìn)行,讀操作可以在所有分區(qū)中執(zhí)行。每個分區(qū)擁有一個主節(jié)點,該主節(jié)點負(fù)責(zé)接收寫操作并將寫操作應(yīng)用到存儲區(qū)域。每個分區(qū)還擁有多個從節(jié)點,它們負(fù)責(zé)處理讀請求。分區(qū)方式的特點如下:

優(yōu)點:

1. 分區(qū)方式能夠支持多個有獨立識別性的節(jié)點,使得整個數(shù)據(jù)庫系統(tǒng)能夠在水平方向上擴(kuò)容。

2. 下游應(yīng)用自行根據(jù)需求選擇讀取哪個分區(qū),可以提高查詢效率。

缺點:

1. 分區(qū)方式的實現(xiàn)較為復(fù)雜,需要對數(shù)據(jù)庫進(jìn)行大規(guī)模的重構(gòu)和改造。

2. 分區(qū)方式中,每個節(jié)點對性能的影響非常大,對節(jié)點的和數(shù)據(jù)的分配要求非常嚴(yán)格。

3. 反向代理方式

反向代理方式是通過在代理層增加一個反向代理服務(wù)器,實現(xiàn)數(shù)據(jù)庫讀寫分離。反向代理服務(wù)器攔截所有的數(shù)據(jù)庫請求,并根據(jù)負(fù)載情況將讀請求轉(zhuǎn)發(fā)至一個或多個從服務(wù)器,寫請求則由反向代理服務(wù)器轉(zhuǎn)發(fā)至主服務(wù)器。反向代理方式的特點如下:

優(yōu)點:

1. 反向代理方式的實現(xiàn)相對較簡單,只需要在服務(wù)端增加一個反向代理服務(wù)器即可。

2. 反向代理服務(wù)器能夠根據(jù)負(fù)載情況動態(tài)的調(diào)整從服務(wù)器的數(shù)量,對性能的優(yōu)化更加靈活。

缺點:

1. 反向代理方式依賴于反向代理服務(wù)器的正常工作,如果反向代理出現(xiàn)問題,則整個數(shù)據(jù)庫服務(wù)都將無法運(yùn)轉(zhuǎn)。

2. 反向代理服務(wù)器處理請求的開銷非常大,如果請求量過大,則可能影響整體性能。

在實際的數(shù)據(jù)庫系統(tǒng)中,因為應(yīng)用的業(yè)務(wù)邏輯以及讀寫的負(fù)載均衡都存在較大的波動,因此需要根據(jù)具體情況選擇最適合的讀寫分離方案。上述幾種方式各有優(yōu)缺點,我們可以根據(jù)具體場景進(jìn)行選擇和調(diào)整。最重要的是要保持?jǐn)?shù)據(jù)庫的穩(wěn)定性和高效性,以維護(hù)應(yīng)用的正常運(yùn)行。

相關(guān)問題拓展閱讀:

  • 如何在應(yīng)用層通過spring特性解決數(shù)據(jù)庫讀寫分離

如何在應(yīng)用層通過spring特性解決數(shù)據(jù)庫讀寫分離

兩種方案

方案1:當(dāng)只有讀操作的時候,直接操作讀庫(從庫);

當(dāng)在寫事務(wù)(即寫主庫)中讀時,也是讀主庫(即參與到主庫操作),這樣的優(yōu)勢是可以防止寫完后可能讀不到剛才寫的數(shù)據(jù);

此方案其實是使用事務(wù)傳播行為為:SUPPORTS解決的。

方案2:當(dāng)只有讀操作的時候,直接操作讀庫(從庫);

當(dāng)在寫事務(wù)(即寫主庫)中讀時,強(qiáng)制走從庫,即先暫停寫事務(wù),開啟讀(讀從庫),然后恢復(fù)寫事務(wù)。

此方案其實是使用事務(wù)傳播行為為:NOT_SUPPORTS解決的。

核心組件

cn.javass.common.datasource.ReadWriteDataSource:讀寫分離的動態(tài)數(shù)據(jù)源,類似于AbstractRoutingDataSource,具體參考javadoc;

cn.javass.common.datasource.ReadWriteDataSourceDecision:讀寫庫選擇的決策者,具體參考javadoc;

cn.javass.common.datasource.ReadWriteDataSourceProcessor:此類實現(xiàn)了兩個職責(zé)(為了減少類的數(shù)量將兩個功能合并到一起了):讀/寫動態(tài)數(shù)據(jù)庫選擇處理器、通過AOP切面實現(xiàn)讀/寫選擇,具體參考javadoc。

具體配置

1、數(shù)據(jù)源配置

1.1、寫庫配置

Java代碼

1.2、讀庫配置

Java代碼

1.3、讀寫動態(tài)庫配置

通過writeDataSource指定寫庫,通過readDataSourceMap指定從庫列表,從庫列表默認(rèn)通過順序輪詢來使用讀庫,具體參考javadoc;

Java代碼

2、XML事務(wù)屬性配置

所以讀方法必須是read-only(必須,以此來判斷是否是讀方法)。

Java代碼

3、事務(wù)管理器

事務(wù)管理器管理的是readWriteDataSource

Java代碼

4、讀/寫動態(tài)數(shù)據(jù)庫選擇處理器

根據(jù)之前的txAdvice配置的事務(wù)屬性決定是讀/寫,具體參考javadoc;

forceChoiceReadWhenWrite:用于確定在如果目前是寫(即開啟了事務(wù)),下一步如果是讀,是直接參與到寫庫進(jìn)行讀,還是強(qiáng)制從讀庫讀,具體參考javadoc;

Java代碼

5、事務(wù)切面和讀/寫庫選擇切面

Java代碼

1、事務(wù)切面一般橫切業(yè)務(wù)邏輯層;

2、此處我們使用readWriteDataSourceTransactionProcessor的通過AOP切面實現(xiàn)讀/寫庫選擇功能,order=Integer.MIN_VALUE(即更高的優(yōu)先級),從而保證在操作事務(wù)之前已經(jīng)決定了使用讀/寫庫。

6、測試用例

只要配置好事務(wù)屬性(通過read-only=true指定讀方法)即可,其他選擇讀/寫庫的操作都交給readWriteDataSourceTransactionProcessor完成。

可以參考附件的:

cn.javass.readwrite.ReadWriteDestWithForceChoiceReadOnWriteFalse

cn.javass.readwrite.ReadWriteDestWithNoForceChoiceReadOnWriteTrue

可以下載附件的代碼進(jìn)行測試,具體選擇主/從可以參考日志輸出。

關(guān)于數(shù)據(jù)庫讀寫分離怎么通信的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機(jī)房服務(wù)器托管租用。


文章標(biāo)題:數(shù)據(jù)庫讀寫分離的通信方式簡介 (數(shù)據(jù)庫讀寫分離怎么通信)
本文鏈接:http://uogjgqi.cn/article/dhjihhp.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流