西安一碼通此前報道:用兩天兩夜,將1M圖片優(yōu)化到100kb
西安健康碼連續(xù)兩次崩潰,在互聯(lián)網(wǎng)上持續(xù)發(fā)酵,相關(guān)責(zé)任人被停了職,算是給了大家一個交代。不過一碼通事件還沒結(jié)束,有網(wǎng)友發(fā)現(xiàn)在2021年6月份一篇關(guān)于一碼通項目的報道中,有夸大“技術(shù)難度”的嫌疑。
報道中提及:“為了確保系統(tǒng)運(yùn)行更高效,他們將一張圖片從1MB壓縮到500KB,再從500KB優(yōu)化到100KB。”并強(qiáng)調(diào)這件事的技術(shù)難度,技術(shù)人員連續(xù)兩天兩夜守在電腦前,最終攻克“難關(guān)”。
那么,西安健康碼連崩兩次,是否真的與“圖片壓縮技術(shù)”有關(guān)呢?
圖片壓縮技術(shù)有多難?
首先得先確定這張圖片是否能被壓縮,像健康碼圖片、廣告圖片等等,都屬于可以被壓縮的圖片。手機(jī)屏幕大小有限,1MB的圖片與100KB圖片的顯示效果沒有什么區(qū)別。
圖片壓縮并不是什么很難的技術(shù),將png轉(zhuǎn)換成jpg,修改圖片分辨率等等,都可以達(dá)到壓縮圖片的效果,不可能用兩晝夜的時間去將一張1MB的圖片優(yōu)化成100KB。更何況在高頻使用場景下,使用這么大的圖片,本身產(chǎn)品設(shè)計上就存在缺陷。
問題的關(guān)鍵不在于壓縮圖片難度,而是開發(fā)應(yīng)用程序使用的技術(shù)是否過關(guān)。
對此,網(wǎng)友提出了一個質(zhì)疑:二維碼是否在客戶端生成?
要知道,二維碼傳遞的信息都是一串字符,可能是網(wǎng)址、產(chǎn)品信息或者下載鏈接,服務(wù)端只需將這些字符傳輸給客戶端,再由客戶端生成二維碼圖片即可。這樣一來大小就是1k級別的,根本不需要100KB。
如果采用在服務(wù)端生成二維碼圖片,再傳輸給客戶端,這是一種很愚蠢的做法,因為會占用大量的帶寬,同時使用人數(shù)一多, 很容易崩潰,一般開發(fā)人員都不會采用這種方式。鑒于該報道“兩天兩夜壓縮圖片”的報道,讓許多內(nèi)行的同學(xué)不得不懷疑,一碼通是否會采用這種方式,如果是,連續(xù)崩潰兩次也就不奇怪了。
網(wǎng)友經(jīng)過對一碼通的抓包,發(fā)現(xiàn)并沒有出現(xiàn)這種情況。一碼通確實(shí)采用的是前端生成二維碼的方式。
顯然,報道中提到的,將1MB優(yōu)化到100KB的圖片,并非二維碼,而是廣告、logo之類的圖片。
一碼通崩潰的原因
網(wǎng)友通過抓包還是發(fā)現(xiàn)了一碼通現(xiàn)存的一些問題,比如在主頁竟然出現(xiàn)了一張87KB的“快訊”圖片,這張圖片還僅僅是某篇文章的縮略圖。
如果在上班高峰期,許多用戶都是第一次打開一碼通頁面,并沒有緩存在本地,服務(wù)器勢必產(chǎn)生巨大的壓力,很容易崩潰。
在這種高并發(fā)場景下,的確不應(yīng)該存在這種大圖片。另外一個因素,也可能是一碼通本身的帶寬不夠,不足以支撐用碼高峰期,市民的使用需求。
一碼通到底是技術(shù)不過關(guān),還是本身帶寬不夠,其實(shí)已經(jīng)不重要。重要的是我們應(yīng)該怎么吸取這兩次的教訓(xùn),避免再出現(xiàn)這種情況。畢竟疫情期間,無法查看健康碼,不僅會影響出行,還會造成許多間接損失。