西安一碼通兩次崩潰,技術原因是什么?
今日推薦 推薦一個 Java 接口快速開發(fā)框架 干掉Random:這個類已經(jīng)成為獲取隨機數(shù)的王者 Docker + Intellij IDEA,提升 10 倍生產(chǎn)力! 笑出腹肌的注釋,都是被代碼耽誤的詩人! 同事亂用 Redis 卡爆,我真是醉了... RedisJson 橫空出世,性能碾壓ES和Mongo!
西安一碼通的二次崩潰,幾乎每個技術群里都在吐槽和猜測。知乎也有開貼提問,地址是:
https://www.zhihu.com/question/509914161
技術圈都對這件事情感興趣,讓我們一起來看看!
前段時間,有一篇陜西電信的文章,大力肯定了開發(fā)團隊,但略顯得外行,該報道被眾多網(wǎng)友吐槽:

目前已經(jīng)下架,可以看看大概內(nèi)容:

健康碼連續(xù)掛了兩次真的有點業(yè)余了,不過確實也沒有l(wèi)ow到服務器生成圖片進行下發(fā)這么蠢。知乎@盧興民做了簡單剖析,我們來看看。
看一波西安健康碼的接口數(shù)據(jù):

真正的二維碼數(shù)據(jù)是 /person/app/refreshQRCode這個接口

看下這個接口返回,設計上也沒有太大的問題。
主要問題集中在所有的js/css/img這些靜態(tài)資源全都從從一個出口進行提供,沒上CDN。
粗略估算了一下,js/css/img數(shù)據(jù)總共約500kB,按照從某個群里得到的數(shù)據(jù),暫且認為是準的,健康碼的請求量峰值達到了3.3w qps。
那按照這個量估計 33000 x 500 x 8 bps ≈ 125Gbps ?這個出口量級很難用單機房承載,峰值一來,出口網(wǎng)卡打滿,直接gg。
到寫這個回答時,西安健康碼還是沒有將靜態(tài)資源上CDN,之后看看訪問量再起飛的時候,能不能扛得住吧。
當然,目前所有的看法也都只是猜測,具體什么原因還得所在的開發(fā)團隊挖掘,你的看法是什么呢,歡迎評論區(qū)討論!
推薦文章
評論
圖片
表情
