【數據庫】數據庫負載均衡


解決方案:使用分布式數據庫,引入中間件實現負載均衡,我們先把操作發給這個中間件管家,然后管家通過識別,哦~原來你要進行select操作,那么我就把你這個請求發給master,又來一個原來你需要進行的是插入insert的操作,那么我就把你這個請求發給slave,當如果有多個slave的時候,我就通過slave的權重,輪循的發給每一個slave,這樣我們就實現了讀寫分離操作,以及簡單的負載均衡。

數據庫的讀寫分離

實現原理:讀寫分離簡單的說是把對數據庫讀和寫的操作分開對應不同的數據庫服務器,這樣能有效地減輕數據庫壓力,也能減輕io壓力。主數據庫提供寫操作,從數據庫提供讀操作,其實在很多系統中,主要是讀的操作。當主數據庫進行寫操作時,數據要同步到從的數據庫,這樣才能有效保證數據庫完整性。

什么是讀寫分離:

在數據庫集群架構中,讓主庫負責寫,而從庫只負責處理讀,讓兩者分工明確達到提高數據庫整體讀寫性能。當然,主數據庫另外一個功能就是負責將事務性查詢導致的數據變更同步到從庫中,也就是寫操作。

讀寫分離的好處

  1)分攤服務器壓力,提高機器的系統處理效率
    讀寫分離適用於讀遠比寫的場景,如果有一台服務器,當select很多時,update和delete會被這些select訪問中的數據堵塞,等待select結束,並發性能並不高,而主從只負責各自的寫和讀,極大程度的緩解X鎖和S鎖爭用;
  假如我們有1主3從,不考慮上述1中提到的從庫單方面設置,假設現在1分鍾內有10條寫入,150條讀取。那么,1主3從相當於共計40條寫入,而讀取總數沒變,因此平均下來每台服務器承擔了10條寫入和50條讀取(主庫不承擔讀取操作)。因此,雖然寫入沒變,但是讀取大大分攤了,提高了系統性能。另外,當讀取被分攤后,又間接提高了寫入的性能。所以,總體性能提高了,說白了就是拿機器和帶寬換性能;
  2)增加冗余,提高服務可用性,當一台數據庫服務器宕機后可以調整另外一台從庫以最快速度恢復服務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM