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