雙十一高併發場景背後的數據庫RDS技術揭祕

【戰報】11月11日聚石塔(阿里雲數據庫RDS產品形態)峯值QPS突破X00w,Proxy 峯值QPS超過X00w。數據庫

雙十一就要來了,全世界都爲其瘋狂,可是在雙十一搶購中常常會出現幾萬人搶一個紅包或者不少人共同購買一個商品的狀況,這就引起了一個數據庫比較擔憂的場景----高併發。做爲歷屆雙十一重要保障之一的雲數據庫RDS部門,從參數優化、鏈路訪問、彈性擴容、架構設計等方面應對高併發場景(如秒殺、百萬人搶單等),保障雙十一順利進行。那麼背後的技術是如何實現的呢?本文,將帶您展開雙十一阿里雲RDS數據庫背後技術的小祕密。安全

參數優化
在處理「高併發」場景的時候,一些特定的數據庫參數就成爲可否保障數據快速響應和平順處理「高併發」問題,就成了關鍵,以下列出了幾個特別重要的參數:
•loose_rds_max_tmp_disk_space:控制MySQL可以使用的臨時文件的大小;
•loose_rds_threads_running_high_watermark:控制MySQL併發的查詢數目,經常使用於秒殺
•loose_tokudb_buffer_pool_ratio:控制TokuDB引擎可以使用的buffer內存大小
•loose_max_statement_time:控制查詢在MySQL的最長執行時間架構

舉例說明,秒殺場景下的參數設置與影響:
loose_rds_threads_running_high_watermark
image
是「秒殺」場景開始的時候,能夠看到鏈接數成指數級變化,瞬間增長了10倍
image併發

調整參數以前,能夠看到RUN數量很是高,會致使數據庫報警
image運維

調整參數以後,update數值與run數值承更好的方向變化高併發

鏈路訪問
在鏈路訪問方面,咱們提供更高安全性的數據庫代理訪問模式,用戶能夠根據須要隨時開啓或關閉。數據庫代理的規格大小由RDS系統自動管理,能夠在保證租戶間資源隔離的前提下,根據負載大小自適應調節。數據庫代理對應用透明無感知,也無需人工干預,大大下降了運維成本。
以下圖所示
image性能

數據庫代理位於應用程序(Client)和數據庫引擎(Database Engine)中間,由RDS系統自動進行維護,全部的數據庫請求(Request)和響應(Response)均從代理層通過和處理。優化

目前,數據庫代理支持以下功能:數據庫代理支持如下功能:
• 透明切換:RDS實例在發生故障、規格升級或降級時,數據庫代理可使實例切換更加柔和,下降對應用的影響。
• 讀寫分離:提供透明的讀寫分離功能,應用層無需修改代碼,查詢分發到RDS只讀實例,下降主庫的負載。
image阿里雲

• 短鏈接優化:突發高併發的短鏈接(常見於PHP應用)在代理層進行緩衝,減輕對DB層的衝擊,下降RDS的CPU負載和CPS(每秒新建鏈接數),保障數據庫運行穩定。
• 防暴力破解:保護RDS實例帳號密碼,規避帳號密碼被暴力破解。spa

彈性擴容
在擴容升級的過程當中,主要分爲兩種狀況:本機升級和跨機升級
image
本機升級
image
跨機升級,還要作備份數據和日誌的遷移工做

擴容升級的常見問題

  1. 爲何有時候升級須要很長時間?
    可能發生了跨機遷移,遷移時間受限於數據庫大小以及系統壓力
  2. 可用區遷移,數據庫版本升級爲何耗時較長?
    這二者遷移都會發生跨機遷移
  3. 空間升級爲何很是快?
    空間升級不用重啓遷移數據庫
  4. 選擇彈性擴容的時間
    建議在業務低峯期,最近一次備份任務完成後進行升級

架構設計
爲了應對日漸增加的雙十一購買數據量和倉儲數據量,RDS也對各個支持的數據庫進行了新的架構設計。
以下表,引擎選擇方面:ApsaraDB for RDS,當前支持4款關係型引擎,提供容災、備份、恢復、監控等方面的全套解決方案

image
RDS自帶的讀寫分離,讓用戶使用更方便:

另外,安全問題也一直是商家和用戶最關心的問題,在瘋狂的‘剁手’中,您必定不想您的商品信息或者購買信息有安全披露,對於這個問題,RDS在安全方面也作了多重保護和設計:

image

除了以上幾點,RDS團隊還對數據庫的性能等進行了從新的優化,讓商家和購買者在搶購中徹底不用擔憂數據庫的性能和安全問題,無憂無慮的‘剁手’,盡情享受雙十一盛會!


原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索