双十一高并发场景背后的数据库RDS技术揭秘
【戰(zhàn)報】11月11日聚石塔(阿里云數(shù)據(jù)庫RDS產(chǎn)品形態(tài))峰值QPS突破X00w,Proxy 峰值QPS超過X00w。
雙十一就要來了,全世界都為其瘋狂,但是在雙十一搶購中經(jīng)常會出現(xiàn)幾萬人搶一個紅包或者很多人共同購買一個商品的情況,這就引發(fā)了一個數(shù)據(jù)庫比較擔心的場景----高并發(fā)。作為歷屆雙十一重要保障之一的云數(shù)據(jù)庫RDS部門,從參數(shù)優(yōu)化、鏈路訪問、彈性擴容、架構(gòu)設(shè)計等方面應(yīng)對高并發(fā)場景(如秒殺、百萬人搶單等),保障雙十一順利進行。那么背后的技術(shù)是如何實現(xiàn)的呢?本文,將帶您展開雙十一阿里云RDS數(shù)據(jù)庫背后技術(shù)的小秘密。
參數(shù)優(yōu)化
在處理“高并發(fā)”場景的時候,一些特定的數(shù)據(jù)庫參數(shù)就成為能否保障數(shù)據(jù)快速響應(yīng)和平順處理“高并發(fā)”問題,就成了關(guān)鍵,如下列出了幾個特別重要的參數(shù):
?loose_rds_max_tmp_disk_space:控制MySQL能夠使用的臨時文件的大小;
?loose_rds_threads_running_high_watermark:控制MySQL并發(fā)的查詢數(shù)目,常用于秒殺
?loose_tokudb_buffer_pool_ratio:控制TokuDB引擎能夠使用的buffer內(nèi)存大小
?loose_max_statement_time:控制查詢在MySQL的最長執(zhí)行時間
舉例說明,秒殺場景下的參數(shù)設(shè)置與影響:
loose_rds_threads_running_high_watermark
是“秒殺”場景開始的時候,可以看到連接數(shù)成指數(shù)級變化,瞬間增加了10倍
調(diào)整參數(shù)之前,可以看到RUN數(shù)量非常高,會導(dǎo)致數(shù)據(jù)庫報警
調(diào)整參數(shù)之后,update數(shù)值與run數(shù)值承更好的方向變化
鏈路訪問
在鏈路訪問方面,我們提供更高安全性的數(shù)據(jù)庫代理訪問模式,用戶可以根據(jù)需要隨時開啟或關(guān)閉。數(shù)據(jù)庫代理的規(guī)格大小由RDS系統(tǒng)自動管理,可以在保證租戶間資源隔離的前提下,根據(jù)負載大小自適應(yīng)調(diào)節(jié)。數(shù)據(jù)庫代理對應(yīng)用透明無感知,也無需人工干預(yù),大大降低了運維成本。
如下圖所示
數(shù)據(jù)庫代理位于應(yīng)用程序(Client)和數(shù)據(jù)庫引擎(Database Engine)中間,由RDS系統(tǒng)自動進行維護,所有的數(shù)據(jù)庫請求(Request)和響應(yīng)(Response)均從代理層經(jīng)過和處理。
目前,數(shù)據(jù)庫代理支持如下功能:數(shù)據(jù)庫代理支持以下功能:
? 透明切換:RDS實例在發(fā)生故障、規(guī)格升級或降級時,數(shù)據(jù)庫代理可以使實例切換更加柔和,降低對應(yīng)用的影響。
? 讀寫分離:提供透明的讀寫分離功能,應(yīng)用層無需修改代碼,查詢分發(fā)到RDS只讀實例,降低主庫的負載。
? 短連接優(yōu)化:突發(fā)高并發(fā)的短連接(常見于PHP應(yīng)用)在代理層進行緩沖,減輕對DB層的沖擊,降低RDS的CPU負載和CPS(每秒新建連接數(shù)),保障數(shù)據(jù)庫運行穩(wěn)定。
? 防暴力破解:保護RDS實例賬號密碼,規(guī)避賬號密碼被暴力破解。
彈性擴容
在擴容升級的過程中,主要分為兩種情況:本機升級和跨機升級
本機升級
跨機升級,還要做備份數(shù)據(jù)和日志的遷移工作
擴容升級的常見問題
可能發(fā)生了跨機遷移,遷移時間受限于數(shù)據(jù)庫大小以及系統(tǒng)壓力
這兩者遷移都會發(fā)生跨機遷移
空間升級不用重啟遷移數(shù)據(jù)庫
建議在業(yè)務(wù)低峰期,最近一次備份任務(wù)完成后進行升級
架構(gòu)設(shè)計
為了應(yīng)對日漸增長的雙十一購買數(shù)據(jù)量和倉儲數(shù)據(jù)量,RDS也對各個支持的數(shù)據(jù)庫進行了新的架構(gòu)設(shè)計。
如下表,引擎選擇方面:ApsaraDB for RDS,當前支持4款關(guān)系型引擎,提供容災(zāi)、備份、恢復(fù)、監(jiān)控等方面的全套解決方案
:
RDS自帶的讀寫分離,讓用戶使用更方便:
另外,安全問題也一直是商家和用戶最關(guān)心的問題,在瘋狂的‘剁手’中,您一定不想您的商品信息或者購買信息有安全披露,對于這個問題,RDS在安全方面也做了多重保護和設(shè)計:
除了以上幾點,RDS團隊還對數(shù)據(jù)庫的性能等進行了重新的優(yōu)化,讓商家和購買者在搶購中完全不用擔心數(shù)據(jù)庫的性能和安全問題,無憂無慮的‘剁手’,盡情享受雙十一盛會!
原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的双十一高并发场景背后的数据库RDS技术揭秘的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在阿里云上试用 Knative
- 下一篇: 我在阿里云做前端