这两天,因为西安一码通的二次崩溃,几乎每个技术群里都在吐槽和猜测。
网上一直在说崩溃是因为后台传输的是图片?
第一次看到这个消息的时候,小编是抱有怀疑态度的。毕竟大家都知道这种大的政府项目都是要招标的,我曾经参见过很多次的竞标,能去竞标的公司都不是很小的公司,因此技术实力也不是一般小公司的水平。
作为程序员来说,怎么会出现这么低级的错误呢?不管是开发还是测试,应该认真负责自己经手的产品。
网上有很多大神对问题进行了分析。
知乎上也开了个贴讨论:一码通崩溃的技术原因是什么?
原帖地址:https://www.zhihu.com/question/509914161,有兴趣的小伙伴可以自行前往。
其中最热回复如下:
注意这里一个细节!答主跟大部分人一样,开始以为是服务器负载太大,但之后又转到了图片优化上的猜测。这里提到了一篇陕西电信的文章。
于是小编去找了一下,还真有一篇名为《“科技抗疫”中流砥柱:西安电信“一码通”平台服务保障专班》的报道,地址:https://m.thepaper.cn/baijiahao_13083245
里面有这样一段话被网友们抓了出来:
上面这段话中的红色部分,就是该答主所指问题所在!
这篇洋洋洒洒近2000字的"美文",就这一小段与技术沾点边,所以确实极有可能就是当时该系统开发时面临的最难攻克点。而这样的实现方式,也确实并不是一个好的选择!当然这也都是猜测,具体怎么样我们也不知道。
往后翻了下,在知乎上看到了知友 “卢兴民” 的回答,别人是真的去分析了二维码接口数据的,证明并不是在服务器生成图片。
西安健康码的接口数据
真正的二维码数据是 /person/app/refreshQRCode这个接口
这位知友表示:
看下这个接口返回,设计上也没有太大的问题。
主要问题集中在所有的js/css/img这些静态资源全都从从一个出口进行提供,没上CDN
粗略估算了一下,js/css/img数据总共约500kB
按照从某个群里得到的数据,暂且认为是准的,健康码的请求量峰值达到了3.3w qp
那按照这个量估计 33000 x 500 x 8 bps ≈ 125Gbps 这个出口量级很难用单机房承载,峰值一来,出口网卡打满,直接gg。
到写这个回答时,西安健康码还是没有将静态资源上CDN,之后看看访问量再起飞的时候,能不能扛得住吧。
知乎链接:
https://www.zhihu.com/question/509914161/answer/2299099095
事情到这大家也都明白了吧,真不是之前网上传的这么低级错误,但是相关技术团队也确实有点业余。
你觉得这次西安一码通再次崩溃的技术原因是什么呢?
转自公众号:程序员大咖