免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
趕考狀元:如何快速應對數(shù)據(jù)庫QPS暴漲20倍?我們做了三次決策

受疫情影響,全國各學校的開學均被延期。為避免耽誤學生的課業(yè),教育部推出了“停課不停學”政策,鼓勵師生積極開展線上教學模式。

趕考狀元(上海億山睦教育科技有限公司)為此積極響應政府號召,向湖北全省一年級到高三的學子免費開放教材的同步在線教學課程,后來進一步擴大至全國范圍。這一公益活動獲得了很大反響,網(wǎng)站用戶注冊量和瀏覽量超過平時數(shù)倍。

雖然活動從策劃到上線總共只有4天時間,趕考網(wǎng)技術(shù)團隊通過科學決策,及時精密的實施,完成了業(yè)務代碼改造、架構(gòu)評估、擴容升級、SQL優(yōu)化等工作,期間也和UCloud UDB團隊緊密合作,在其協(xié)助下實現(xiàn)了數(shù)據(jù)庫的架構(gòu)改造和擴容,很好地承接了QPS暴漲20倍的訪問壓力,圓滿完成技術(shù)保障任務。

下面分享一些我們在此過程中的細節(jié)和思考,供有快速擴容需要的企業(yè)參考。


面臨的業(yè)務痛點

公司自2005年成立一直專注于K12在線教育,此次疫情公益活動構(gòu)想階段,業(yè)務側(cè)運用此前超過十年的互聯(lián)網(wǎng)及線下教育經(jīng)驗,快速設計了有效可行的方案,在不少細節(jié)上下了功夫,例如加速審核通道,只需兩步即可學習的易用性,面向家長推廣的二維碼等。

技術(shù)團隊的任務則是提前預判后臺流量的迅猛增長,未雨綢繆設計行之有效的預案,查漏補缺,切實保障活動順利流暢運行。為此我們細致梳理了現(xiàn)有架構(gòu)的薄弱點,并相應制定了精準有效的擴容方案。

由于我們原先的擴容是穩(wěn)定慢節(jié)奏的,這次預見到了大量訪問需求,首要工作是分析現(xiàn)有架構(gòu)的能力和不足。

此前業(yè)務的主應用架構(gòu)為ULB負載+雙UHost單體架構(gòu)+分布式緩存+單實例高可用UDB,用了大量UCloud的云組件。我們?nèi)媸崂砹思軜?gòu)各層模塊,對每一層的能力做了評估。ULB有扛大流量的能力,主要關注后端。UHost上是應用服務,我們測算了一個部署于8核16GB UHost上的主站模塊能夠扛住多大并發(fā)請求、應用模塊垂直擴容和平行擴容兩個方案的優(yōu)劣對比,最終決定水平擴展??紤]到外圍的單體服務接口受主應用流量的帶動,也進行了擴容承壓的調(diào)整。緩存的做法是加大分布式緩存、優(yōu)化訪問緩存。壓力最大的是數(shù)據(jù)庫,可能帶來性能上的嚴重瓶頸。

不管是MySQL、PostgreSQL還是MongoDB,我們都采用了UCloud 的 UDB 托管服務,其中包括核心數(shù)據(jù)庫。相比自建數(shù)據(jù)庫,UDB提供的高健壯高可用以及免維護的服務,可以讓我們更安心專注于上層業(yè)務邏輯的構(gòu)建上。且在數(shù)據(jù)的安全問題上,UDB提供了完善的備份和恢復機制,避免數(shù)據(jù)意外丟失。


快速擴容的三次決策
1
在線垂直升級 

最初我們的業(yè)務核心數(shù)據(jù)庫選用了高可用UDB部署。在業(yè)務平穩(wěn)期,從性價比角度考慮,最開始UDB實例配置不高,預估QPS最大負載在3000以內(nèi)。業(yè)務爆發(fā)前夜,首先對UDB實例做了垂直升級,大幅度提升了數(shù)據(jù)庫的內(nèi)存和磁盤配置。這個操作很快,幾乎不影響業(yè)務訪問(只在磁盤升級時有秒級訪問中斷), 實例的處理性能迅速得到提升。

2
高性能讀寫分離 

但高速增長的業(yè)務,給數(shù)據(jù)庫帶來的壓力預計很快便超過單個UDB實例所能承受的極限,因此數(shù)據(jù)庫從單機升級為集群勢在必行。

我們設計方案時,獲得了UDB團隊的協(xié)助。分析業(yè)務的SQL請求后,發(fā)現(xiàn)讀寫比例在50 : 1左右,屬于典型的讀多寫少業(yè)務,于是向我們推薦了一主多從 + 讀寫分離Proxy 的數(shù)據(jù)庫集群架構(gòu)。

在該架構(gòu)下,主(高可用UDB)和從(單節(jié)點UDB)之間通過異步復制保持數(shù)據(jù)同步,業(yè)務數(shù)據(jù)庫IP改指向讀寫分離Proxy的IP,由讀寫分離Proxy識別業(yè)務SQL的讀寫類型,將寫SQL、事務讀SQL轉(zhuǎn)發(fā)到主, 普通讀SQL按比例轉(zhuǎn)發(fā)到從,轉(zhuǎn)發(fā)比例控制臺可自由配置。同時,讀寫分離Proxy幾乎100%兼容MySQL語法和協(xié)議,業(yè)務無需改造即可順暢接入。

通過該架構(gòu),似乎可完美解決讀多寫少業(yè)務對數(shù)據(jù)庫的大流量壓力問題,但實際上仍有一些至關重要的技術(shù)細節(jié)需要把握。 

其中之一就是讀寫分離中間件的轉(zhuǎn)發(fā)性能問題。從理論上看,可以通過橫向添加從節(jié)點的辦法線性提升數(shù)據(jù)庫集群的讀性能,但如果底層從節(jié)點數(shù)量加上去了,讀寫分離中間件又是否會成為新的瓶頸? 

我們十分重視這個問題,為此首先做了一系列的數(shù)據(jù)指標估算,包括現(xiàn)有UDB實例的性能上限、UDB在垂直升級后根據(jù)現(xiàn)有訪問模型估算性能上限、UDB升級為讀寫分離主從集群后對讀寫請求的處理性能和從節(jié)點數(shù)量的關系等。

第二步則是和UDB團隊配合做了讀寫分離Proxy的壓測。

上述壓測實驗采用Sysbench程序,在兩臺物理機上模擬了底層UDB節(jié)點從1主線性增長到1主6從的情況下,整個讀寫分離集群的讀處理性能。從結(jié)果可以看出,得益于讀寫分離Proxy對多核CPU的充分利用,以及代碼層面的多個性能調(diào)優(yōu), 讀寫分離Proxy具備可靠的轉(zhuǎn)發(fā)性能,不構(gòu)成集群的性能瓶頸。從而保證集群的讀性能,能夠隨著從節(jié)點的線性增長,呈現(xiàn)幾乎完美的線性增長。

實測數(shù)據(jù)令人放心,UDB團隊繼而幫助制定了整套UDB擴容計劃,我們的業(yè)務代碼也相應做了調(diào)整,整個方案可以在網(wǎng)站用戶幾乎零感知的情況下實施。此后,我們后端服務的擴容有條不紊地開始,每天凌晨在業(yè)務低谷時執(zhí)行擴容,先擴容主站應用集群,將數(shù)據(jù)庫升級到讀寫分離集群,然后逐層向外擴容外圍單體服務,整個擴容工作設計合理,快馬加鞭實施到位。

運營情況

公益項目開始后,2月1號到2月10號短短10天內(nèi),趕考狀元平均日注冊用戶量由0.83萬上升到3萬,最大單日注冊用戶達5.8萬。平穩(wěn)承壓了單日20萬用戶的web/App訪問,順利地為全國各地區(qū)超過100萬學生免費贈送了在線微課學習、題庫練習、作業(yè)組等線上服務,為停課不停學“添磚加瓦”,貢獻了優(yōu)質(zhì)的公益教育資源。

在此期間,我們業(yè)務數(shù)據(jù)庫的吞吐量(QPS)暴漲了近20倍,目前線上讀寫分離Proxy單實例最高QPS已達到20萬以上,升級到讀寫分離集群后,通過1主6從加2節(jié)點雙活讀寫分離Proxy的集群配置,平穩(wěn)扛住了業(yè)務流量的高速增長。我們的技術(shù)架構(gòu),也成長為一個具有相當規(guī)模的中型互聯(lián)網(wǎng)服務。

3
高可用新架構(gòu):擴充連接數(shù) 

在渡過2月10號這個線上開學高峰后,業(yè)務依然在高速發(fā)展,雖然主從讀寫分離集群在應對業(yè)務高QPS訪問上不成問題,但隨著業(yè)務模塊的增多,在2月12號上午高峰期業(yè)務向數(shù)據(jù)庫發(fā)起的連接數(shù),已經(jīng)達到高可用版UDB產(chǎn)品6000的上限。

為了從根本上解決這個問題,UDB研發(fā)團隊建議,將高可用UDB的后臺架構(gòu),從傳統(tǒng)的VIP+代理+DB 的架構(gòu)升級為其最新開發(fā)的漂移 VIP+DB 雙主新架構(gòu)。為此他們連夜制定了透明升級的方案,能夠不遷數(shù)據(jù)在2分鐘內(nèi)從舊架構(gòu)原地升級為新架構(gòu),獲得我們認可并在凌晨實施,確保第二天業(yè)務的正常運行。

新的高可用UDB架構(gòu),利用穩(wěn)定的UCloud虛擬網(wǎng)絡VIP管理服務,將架構(gòu)簡化為更樸素的漂移 VIP+DB 雙主的實現(xiàn),在數(shù)據(jù)鏈路上減少一次轉(zhuǎn)發(fā),消除一個潛在性能瓶頸,并且簡化控制模塊,減少不可控因素。同時新架構(gòu)對數(shù)據(jù)庫(MySQL 和 PG)原生的兼容度更高。


慢查詢優(yōu)化

提前規(guī)劃和快速擴容,給了我們更多的余裕,能去快速應對和解決大流量突發(fā)時暴露的其它隱藏問題,最典型的例子是數(shù)據(jù)庫慢查詢。

我們后臺代碼采用了ORM框架連接MySQL,由于ORM層屏蔽了底層MySQL庫表的細節(jié),小部分訪問MySQL的代碼沒有考慮到底層MySQL的執(zhí)行邏輯,存在慢查詢過多的問題。慢查詢的問題,在平時小流量慢增長的情況下影響并不明顯,但是疫情期間大流量壓力下就變得不容忽視。

UCloud DBA團隊期間提供了諸多幫助,他們在慢查詢問題的定位和解決上有豐富的經(jīng)驗。疫情期間,他們克服在家辦公干擾多,遠程溝通不便等不利因素,通過微信、遠程會議等方法隨時和我們保持聯(lián)系,結(jié)合我們對業(yè)務邏輯的理解,協(xié)同定位問題,一起梳理了業(yè)務近半年所有新增數(shù)據(jù)庫表并增加索引,最終慢查詢的問題得到有效解決。



寫在最后
這次面對突發(fā)需求的快速響應擴容,從方案到實施,是云的使用者和云廠商分工協(xié)作、發(fā)揮各自優(yōu)勢的一個有效實踐。我們在業(yè)務中廣泛使用UDB,是對于其彈性和全托管這兩個核心能力的充分認可。此次協(xié)作,也對其快速應對、方案制定、7*24在線服務等有了更多認識。
據(jù)悉,近期UCloud UDB團隊還將推出快杰UDB新產(chǎn)品,其基于計算和存儲分離架構(gòu)構(gòu)建,并結(jié)合UCloud數(shù)據(jù)方舟后端的分層混合存儲設計,可實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的快速備份和恢復到任一秒能力,有效避免用戶誤刪數(shù)據(jù)庫導致數(shù)據(jù)丟失以及數(shù)據(jù)恢復慢等問題,值得期待。




【留言互動】面對各種突發(fā)緊急的業(yè)務擴容需求

你有什么想法和故事?

歡迎文章底部留言,點贊數(shù)排第一即可獲得技術(shù)書籍

《計算機程序的構(gòu)造與解釋》一本,截止時間3月19日18:00

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
朱曄的互聯(lián)網(wǎng)架構(gòu)實踐心得S1E5:不斷耕耘的基礎中間件
從 IT 架構(gòu)的角度來解析電商秒殺活動
TiDB 在馬上消費金融核心賬務系統(tǒng)歸檔及跑批業(yè)務下的實踐
高并發(fā),我把握不住啊
五大常見的MySQL高可用方案
77頁PPT帶你了解UCloud 357﹪增長背后的產(chǎn)品邏輯
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服