这才是西安一码通两次崩溃的真正技术原因
裸睡的猪
共 717字,需浏览 2分钟
· 2022-01-14
https://www.zhihu.com/question/509914161
技术圈都对这件事情感兴趣,让我们一起来看看!
前段时间,有一篇陕西电信的文章,大力肯定了开发团队,但略显得外行,该报道被众多网友吐槽:
![](https://filescdn.proginn.com/a7663dc69d6389174ae5bc0f5f1bea5e/a9a1dfc2c7c2dd7e5cc439001378a8bb.webp)
目前已经下架,可以看看大概内容:
![](https://filescdn.proginn.com/6c1c7f2910e9bbaaeeb12fb6d6c8cc70/035d36e853c26b74116d80b603b8250a.webp)
健康码连续挂了两次真的有点业余了,不过确实也没有low到服务器生成图片进行下发这么蠢。知乎@卢兴民做了简单剖析,我们来看看。
看一波西安健康码的接口数据:
![](https://filescdn.proginn.com/a30d4532e89c0199e053941481fade89/433a9585882ab12bf69fbee34ad0e3d9.webp)
真正的二维码数据是 /person/app/refreshQRCode
这个接口
![](https://filescdn.proginn.com/8e760e272313b9dcb8345bccce595a9f/6f34d64511127903f454972cc822f59c.webp)
看下这个接口返回,设计上也没有太大的问题。
主要问题集中在所有的js/css/img这些静态资源全都从从一个出口进行提供,没上CDN。
粗略估算了一下,js/css/img数据总共约500kB,按照从某个群里得到的数据,暂且认为是准的,健康码的请求量峰值达到了3.3w qps。
那按照这个量估计 33000 x 500 x 8 bps ≈ 125Gbps
这个出口量级很难用单机房承载,峰值一来,出口网卡打满,直接gg。
到写这个回答时,西安健康码还是没有将静态资源上CDN,之后看看访问量再起飞的时候,能不能扛得住吧。
当然,目前所有的看法也都只是猜测,具体什么原因还得所在的开发团队挖掘,你的看法是什么呢,欢迎评论区讨论!
评论