查看原文
其他

扒了一下西安一码通的接口,这特么不崩才怪呢~

点击关注 👉 Java架构师技术 2022-07-01
以下文章来源Java架构师技术,回复”Spring“获惊喜礼包
上一篇推文:不一般,在 Nginx 中运行 JavaScript

  大家好,我是Java架构师

最近西安健康码挂了两次,这个事情震惊了全国。西安防疫,但是健康码却不靠谱的罢工了,真的是不靠谱。
传说这是因为西安的健康码找了业余的码农来操刀,直接服务器生成二维码图片,然后把图片送到客户端上,所以流量撑不住,爆了。
这传说煞有其事的,显得很有道理,但是实际情况是不是这样呢?
不是的。
健康码连续挂了两次真的有点业余了,不过确实也没有low到服务器生成图片进行下发这么蠢。
相关文章:
1、西安一码通崩了!程序员因扫不出一码通进不了办公楼,而无法解决Bug
2、西安一码通又崩了,官方回应!
3、#西安一码通#又崩了。。。谁之责 ?
4、西安一码通崩溃的真实原因找到了!
5、频频宕机?工信部:西安“一码通”要加强技术改进,确保不拥塞宕机

看一波西安健康码的接口数据。




真正的二维码数据是 /person/app/refreshQRCode这个接口



看下这个接口返回,设计上也没有太大的问题。所以这些都不是导致西安二维码爆的原因了。关注Java架构师技术


主要问题集中在所有的js/css/img这些静态资源全都从从一个出口进行提供,没上CDN粗略估算了一下,js/css/img数据总共约500kB按照从某个群里得到的数据,暂且认为是准的,健康码的请求量峰值达到了3.3w qps

那按照这个量估计 33000 x 500 x 8 bps ≈ 125Gbps  这个出口量级很难用单机房承载,峰值一来,出口网卡打满,直接gg。刚刚,微信官宣1000W个微信红包封面,速度撸!!


到写这个回答时,西安健康码还是没有将静态资源上CDN,之后看看访问量再起飞的时候,能不能扛得住吧。


最后再补充一点,这应用只是其中一个原因。不排除后端和数据库缓存也有更大的问题。


最后,整理了100多套项目,赠送读者。扫码下方二维码,后台回复赚钱即可获取。

--END--

来源:卢兴民

链接:zhihu.com/question/509914161/answer/2299099095

版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!

往期惊喜:

何谓架构?

一个很酷的后台权限管理系统

看看人家那 IM 即时通讯系统,那叫一个优雅(附源码)

支付宝架构师眼中的高并发架构

为什么美国程序员不用加班,而中国程序员就只能996?

如何搭建一台永久运行的个人服务器?

Nginx配置反向代理,一篇搞定!

大文件上传服务器、支持超大文件HTTP断点续传实践总结

微信和QQ,终于可以互通了!

分布式锁用Redis好?还是Zookeeper好?

大规模业务技术架构设计与战术(架构师必看)

妙用Java 8中的 Function接口 消灭if...else(非常新颖的写法)

将Bean放入Spring容器中的五种方式


扫码关注我们的Java架构师技术

带你全面深入Java

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存