對資料庫讀寫分離思考

2021-10-25 01:18:22 字數 749 閱讀 3502

在專案中,我們一般連線的都是主庫,當讀比較多時,就會對主庫的cpu、記憶體造成壓力,而最常見的解決方案無非就是

擴容及讀寫分離。那麼我們就從"形而上"來看看讀寫分離。

讀寫分離的本質

讀寫分離,更確切地應該稱之為流量分離,使資料庫請求的流量均衡地打到主從伺服器上,實現資源的充分利用。本質上基於多資源的連線能力,分離流量。因為從庫只能讀,所以也經常會被成為讀寫分離。但在真實的場景中,不一定就是完全的讀寫分離。

讀寫分離的實現形式

目前還沒有進行相關的分類,或者我沒有找到相關的分類。所以下面是我的乙個總結。

協議隔離通過協議識別,可以在應用無感知情況下,實現流量分離。

常見的實現方式:

aop切面方式,識別repo層的操作(名稱或者註解),注入不同的資料來源

mysql-proxy方式,通過識別讀寫,**到主從資料庫

這種方式好處就是應用無感知,缺點是無法手動選擇,效能可能也有些損耗。

服務隔離

根據場景的不同,分為多個服務目錄空間,掛載相關的服務。通常的實現方式,使用配置的方式將資料來源和多個服務進行繫結。

這裡會出現乙個服務可能對多種資料來源,通過服務標籤進行區分。

資料庫讀寫分離

隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share p...

資料庫讀寫分離

隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share p...

資料庫讀寫分離

隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策 略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share ...