西安一码通崩溃的真实原因是什么?
大家好!我是编程君
最近西安一码通二次崩溃这个事情,实在是太顶了。作为程序员,出现这种问题属实不应该。
网上一直在说崩溃是因为后台传输的是图片?
第一次看到这个消息的时候,小孟是抱有怀疑态度的。毕竟大家都知道这种大的政府项目都是要招标的,我曾经参见过很多次的竞标,能去竞标的公司都不是很小的公司,因此技术实力也不是一般小公司的水平。
作为程序员来说,怎么会出现这么低级的错误呢?不管是开发还是测试,应该认真负责自己经手的产品。
网上有很多大神对问题进行了分析。
知乎上也开了个贴讨论:一码通崩溃的技术原因是什么?
原帖地址: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
事情到这大家也都明白了吧,真不是之前网上传的这么低级错误,但是相关技术团队也确实有点业余。
所以,小伙伴你怎么看呢?欢迎评论区交流!