天天看點

RDS讀寫分離,海量資料一鍵搞定簡介場景應用架構簡介總結這裡是彩蛋友情連結:

(文末有彩蛋)

RDS為使用者提供高透明,高可用,高性能,高靈活的讀寫分離服務。在最近的版本我們基于短連接配接的使用者進行了優化,使得短連接配接的使用者負載均衡更加完善合理。RDS讀寫分離有如下特性:

易用/透明性

使用者隻需要在原來的隻讀執行個體的主執行個體上開通一個讀寫分離的VIP就可以使用讀寫分離,而不需要修改任何業務代碼。對使用者的接入成本幾乎為0。

高可用

RDS讀寫分離服務能夠主動判斷隻讀庫的健康情況(包括節點crash,主備同步異常,延遲較大等),對于不健康的隻讀庫不再進行路由,進而保證系統的整體可用性。同時在故障節點恢複後重新按權重進行負載均衡。

高性能

RDS的讀寫分離服務,由RDS的中間件服務提供路由及負載均衡,對于讀多寫少的業務能夠充分利用隻讀庫的資源,使得整體業務性能得到顯著的提高。

高靈活

RDS的讀寫分離服務為使用者提供按權重的請求及連接配接雙重負載均衡模式,使用者可以根據自己隻讀庫的硬體資源情況,對每個隻讀庫設定相應的讀權重,同時也支援把主庫放到讀清單裡,分擔部分讀請求。

另外,為使用者提供讀庫同步延遲的可用性配置,當使用者對資料的實時性要求較高的話,使用者可以通過調小該值來保證隻有在隻讀庫與主庫的同步延遲小于該值時,讀寫分離服務才會把讀請求路由到該隻讀庫。

擴容更靈活,使用者可以随着業務的增長适當的擴容隻讀庫,而這個也隻需要在控制台上下發一個擴容請求就可以,無需業務上做任務調整。

提供特定的hit文法:如/FORCE_MASTER/ /FORCE_SLAVE/,友善使用者指定SQL到master或slave上執行;以及/PROXY_INTERNAL/show last route檢視sql路由情況等。

随着業務增長,資料越來越大,使用者對資料的讀取需求也随之越來越多,比如各種AP操作,都需要把資料從資料庫中讀取出來,同時,随着資料量的增加,讀請求的性能消耗也可能随之增加,進而導緻影響到使用者的寫請求,反之亦然,寫請求也可能會影響到使用者的讀請求,使得DB的總體吞吐量下降。為了解決該問題,RDS之前提供了隻讀執行個體的方案,使用者可以通過開通多個隻讀執行個體,将讀請求業務直接連接配接到隻讀執行個體上,該方案能夠解決上述問題,但引來的問題也很明顯,使用者的使用成本增大了:需要手動區分讀寫業務,有多個通路位址維護性差,無法做負載均衡,容易受隻讀執行個體的可用性影響等。

RDS雲資料庫讀寫分離就是為了解決如上問題而産生的。使用者隻需要一個請求位址,業務不需要做任何修改,由RDS自帶的讀寫分離中間件服務來完成讀寫請求的路由及根據不同的隻讀執行個體規格進行不同的負載均衡,同時當隻讀執行個體出現故障時能夠主動摘除,減少對使用者的影響。對使用者達到一鍵開通,一個位址,快速使用。

RDS讀寫分離,海量資料一鍵搞定簡介場景應用架構簡介總結這裡是彩蛋友情連結:

圖1 使用者鍊路視圖

對于使用者來說看到的還是一個普通的mysql連接配接,隻是這個連接配接先直接通路RDS的中間件服務,再由中間件服務進行轉發,對使用者來說是完全透明的。

内部架構

RDS讀寫分離,海量資料一鍵搞定簡介場景應用架構簡介總結這裡是彩蛋友情連結:

圖2 RDS中間件内部元件

RDS中間件服務的讀寫分離功能,主要由圖2所示的子產品組成。

RW SESSION:每個使用者連接配接對應的RDS中間件服務裡的一個rw session,其中主要維護着一個與主庫的socket以及與隻讀庫的ro_session,同時負責session狀态的保持及恢複

RO SESSION:負責與隻讀庫的請求處理

ROUTE STRATEGT:該子產品也是讀寫分離的核心子產品,負責sql的路由決策

LB:load balance,負責讀請求的負載均衡,使用常用的weighted round robin算法

QOS:負責隻讀庫的健康檢查

PS:目前PGSQL暫時不支援讀寫分離

RDS雲資料庫自帶的讀寫分離服務能夠有效的解決使用者資料量大讀請求多,帶來的DB吞吐量下降等問題;一鍵開通、一個位址、快速使用極大的減少了使用者的使用成本;配置靈活,自動檢測消除了單點故障提高了系統的可用性。

感謝各位小夥伴的耐心閱讀,現在參加MySQL讀寫分離微網誌轉發活動還有機會獲得天貓精靈以及阿裡雲T恤。

<a href="https://help.aliyun.com/document_detail/51073.html?spm=5176.doc51070.3.3.NHOvYB">讀寫分離help</a>

<a href="https://help.aliyun.com/document_detail/51070.html?spm=5176.doc51073.6.690.8l0EjP">開通介紹</a>