這兩天,因?yàn)槲靼惨淮a通的二次崩潰,幾乎每個(gè)技術(shù)群里都在吐槽和猜測(cè)。
網(wǎng)上一直在說崩潰是因?yàn)楹笈_(tái)傳輸?shù)氖菆D片?

第一次看到這個(gè)消息的時(shí)候,小編是抱有懷疑態(tài)度的。畢竟大家都知道這種大的政府項(xiàng)目都是要招標(biāo)的,我曾經(jīng)參見過很多次的競(jìng)標(biāo),能去競(jìng)標(biāo)的公司都不是很小的公司,因此技術(shù)實(shí)力也不是一般小公司的水平。
作為程序員來說,怎么會(huì)出現(xiàn)這么低級(jí)的錯(cuò)誤呢?不管是開發(fā)還是測(cè)試,應(yīng)該認(rèn)真負(fù)責(zé)自己經(jīng)手的產(chǎn)品。
網(wǎng)上有很多大神對(duì)問題進(jìn)行了分析。
知乎上也開了個(gè)貼討論:一碼通崩潰的技術(shù)原因是什么?
原帖地址:https://www.zhihu.com/question/509914161,有興趣的小伙伴可以自行前往。
其中最熱回復(fù)如下:

注意這里一個(gè)細(xì)節(jié)!答主跟大部分人一樣,開始以為是服務(wù)器負(fù)載太大,但之后又轉(zhuǎn)到了圖片優(yōu)化上的猜測(cè)。這里提到了一篇陜西電信的文章。
于是小編去找了一下,還真有一篇名為《“科技抗疫”中流砥柱:西安電信“一碼通”平臺(tái)服務(wù)保障專班》的報(bào)道,地址:https://m.thepaper.cn/baijiahao_13083245
里面有這樣一段話被網(wǎng)友們抓了出來:

上面這段話中的紅色部分,就是該答主所指問題所在!
這篇洋洋灑灑近2000字的"美文",就這一小段與技術(shù)沾點(diǎn)邊,所以確實(shí)極有可能就是當(dāng)時(shí)該系統(tǒng)開發(fā)時(shí)面臨的最難攻克點(diǎn)。而這樣的實(shí)現(xiàn)方式,也確實(shí)并不是一個(gè)好的選擇!當(dāng)然這也都是猜測(cè),具體怎么樣我們也不知道。
往后翻了下,在知乎上看到了知友 “盧興民” 的回答,別人是真的去分析了二維碼接口數(shù)據(jù)的,證明并不是在服務(wù)器生成圖片。
西安健康碼的接口數(shù)據(jù)

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

這位知友表示:
看下這個(gè)接口返回,設(shè)計(jì)上也沒有太大的問題。
主要問題集中在所有的js/css/img這些靜態(tài)資源全都從從一個(gè)出口進(jìn)行提供,沒上CDN
粗略估算了一下,js/css/img數(shù)據(jù)總共約500kB
按照從某個(gè)群里得到的數(shù)據(jù),暫且認(rèn)為是準(zhǔn)的,健康碼的請(qǐng)求量峰值達(dá)到了3.3w qp
那按照這個(gè)量估計(jì) 33000 x 500 x 8 bps ≈ 125Gbps 這個(gè)出口量級(jí)很難用單機(jī)房承載,峰值一來,出口網(wǎng)卡打滿,直接gg。
到寫這個(gè)回答時(shí),西安健康碼還是沒有將靜態(tài)資源上CDN,之后看看訪問量再起飛的時(shí)候,能不能扛得住吧。
知乎鏈接:
https://www.zhihu.com/question/509914161/answer/2299099095
事情到這大家也都明白了吧,真不是之前網(wǎng)上傳的這么低級(jí)錯(cuò)誤,但是相關(guān)技術(shù)團(tuán)隊(duì)也確實(shí)有點(diǎn)業(yè)余。
你覺得這次西安一碼通再次崩潰的技術(shù)原因是什么呢?
轉(zhuǎn)自公眾號(hào):程序員大咖