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

解決方案:使用分佈式數據庫,引入中間件實現負載均衡,咱們先把操做發給這個中間件管家,而後管家經過識別,哦~原來你要進行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)增長冗餘,提升服務可用性,當一臺數據庫服務器宕機後能夠調整另一臺從庫以最快速度恢復服務性能

相關文章
相關標籤/搜索