双十一高并发场景背后的数据库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
是“秒殺”場景開始的時候,可以看到連接數成指數級變化,瞬間增加了10倍
調整參數之前,可以看到RUN數量非常高,會導致數據庫報警
調整參數之后,update數值與run數值承更好的方向變化
鏈路訪問
在鏈路訪問方面,我們提供更高安全性的數據庫代理訪問模式,用戶可以根據需要隨時開啟或關閉。數據庫代理的規格大小由RDS系統自動管理,可以在保證租戶間資源隔離的前提下,根據負載大小自適應調節。數據庫代理對應用透明無感知,也無需人工干預,大大降低了運維成本。
如下圖所示
數據庫代理位于應用程序(Client)和數據庫引擎(Database Engine)中間,由RDS系統自動進行維護,所有的數據庫請求(Request)和響應(Response)均從代理層經過和處理。
目前,數據庫代理支持如下功能:數據庫代理支持以下功能:
? 透明切換:RDS實例在發生故障、規格升級或降級時,數據庫代理可以使實例切換更加柔和,降低對應用的影響。
? 讀寫分離:提供透明的讀寫分離功能,應用層無需修改代碼,查詢分發到RDS只讀實例,降低主庫的負載。
? 短連接優化:突發高并發的短連接(常見于PHP應用)在代理層進行緩沖,減輕對DB層的沖擊,降低RDS的CPU負載和CPS(每秒新建連接數),保障數據庫運行穩定。
? 防暴力破解:保護RDS實例賬號密碼,規避賬號密碼被暴力破解。
彈性擴容
在擴容升級的過程中,主要分為兩種情況:本機升級和跨機升級
本機升級
跨機升級,還要做備份數據和日志的遷移工作
擴容升級的常見問題
可能發生了跨機遷移,遷移時間受限于數據庫大小以及系統壓力
這兩者遷移都會發生跨機遷移
空間升級不用重啟遷移數據庫
建議在業務低峰期,最近一次備份任務完成后進行升級
架構設計
為了應對日漸增長的雙十一購買數據量和倉儲數據量,RDS也對各個支持的數據庫進行了新的架構設計。
如下表,引擎選擇方面:ApsaraDB for RDS,當前支持4款關系型引擎,提供容災、備份、恢復、監控等方面的全套解決方案
:
RDS自帶的讀寫分離,讓用戶使用更方便:
另外,安全問題也一直是商家和用戶最關心的問題,在瘋狂的‘剁手’中,您一定不想您的商品信息或者購買信息有安全披露,對于這個問題,RDS在安全方面也做了多重保護和設計:
除了以上幾點,RDS團隊還對數據庫的性能等進行了重新的優化,讓商家和購買者在搶購中完全不用擔心數據庫的性能和安全問題,無憂無慮的‘剁手’,盡情享受雙十一盛會!
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的双十一高并发场景背后的数据库RDS技术揭秘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在阿里云上试用 Knative
- 下一篇: 我在阿里云做前端