好家伙,我直呼好家伙,今天晚上,成都核酸系统崩溃,东软直接冲到热搜第一!虽然后面好像被撤掉了,然后又被成都的兄弟们给喷上了热搜。
你问我为什么核酸系统崩了,东软冲上热搜了,别怀疑,你猜的是对的!系统是东软做的。
刚开始还有人以为是鹅厂干的(是不是你,天美!),错了错了,老乡打错人啦。。。
鹅厂大佬赶紧出来辟谣,这玩意儿不是我们做的,这是东软那群瘪犊子玩意儿做的,我们做的和他们做的是两个东西。
腾讯负责的这个部分是天府健康通,给用户使用的,这个使用起来完全没有问题。
而核酸系统,是给核酸医护人员,也就是大白用的,是某外包公司东软做的,直接崩了。
这玩意儿崩了,你说咋做核酸?
这会儿,腾讯资深专家大佬不仅出来辟谣了,还分析了原因,给出了解决方案。
我总结一下大佬说的:
- 我们做的健康码是没有问题的,东软做的核酸系统有问题,健康码系统能支撑千万并发,但是核酸系统才2W。
- 核酸系统用的Nginx做负载均衡,不支持动态扩容。
- 没做分库分表,数据查询太慢
- 上线没做压测,这么点QPS没做预估,心里没有ABCD数吗?
看看工作人员和排队的兄弟们,都急成什么样子了?
这不被喷,谁被喷?
民生大事就这么干的?
从技术角度分析下
负载均衡
首先我们看负载均衡啊,常见的负载均衡有几种。
DNS:这是最简单的负载均衡的方式,一般用于实现地理级别的负载均衡,不同地域的用户通过DNS的解析可以返回不同的IP地址,这种方式的负载均衡简单,但是扩展性太差,控制权在域名服务商。
Http重定向:通过修改Http响应头的Location达到负载均衡的目的,Http的302重定向。这种方式对性能有影响,而且增加请求耗时。
反向代理:作用于应用层的模式,也被称作为七层负载均衡,比如常见的Nginx,性能一般可以达到万级。这种方式部署简单,成本低,而且容易扩展。
IP:作用于网络层的和传输层的模式,也被称作四层负载均衡,通过对数据包的IP地址和端口进行修改来达到负载均衡的效果。常见的有LVS(Linux Virtual Server),通常性能可以支持10万级并发。
如果按照类型来划分的话,还可以分成DNS负载均衡、硬件负载均衡、软件负载均衡。
其中硬件负载均衡价格昂贵,性能最好,能达到百万级,软件负载均衡包括Nginx、LVS这种。
按说成都也是首屈一指的大城市了,人口超过2000万,这时候集中做核酸,我就当有时间差吧,除以一个10,这 QPS 妥妥的随便百万级。
好吧,这时候你用NG,用就用吧,尼玛还没办法动态扩容,所以,凉凉了,很合理。
分库分表
大佬还说他们查询特别慢,这个就当他们能看到确实有这个情况吧,虽然不知道数据具体怎么存的,但是按照2KW人来说,这个随便来点数据都得好几亿的级别了。
这数据量你说不做分库分表,那真的也是说不过去。。。
那假设2KW人,每人每天至少做一次核酸,一天就2KW数据的新增了。
这个我觉得只做分表就够了,因为我认为基本都是查询嘛,多搞几台读的机器就行了,数据库的连接肯定不是什么问题。
那么做分表的话,我们算下,按照这个疫情和我们国家的处理速度来看,肯定不会持续很长的,分个1024、2048张表都能轻松解决。
分表键直接用户ID分,场景多么简单,这也不做,我只能说真的是死有余辜。
全都是坑
最后,我再说下,这个稳定性方面的考虑,这尼玛我真不知道东软他们公司在干吗?
架构师呢?开发呢?测试呢?产品呢?
居然没有人考虑过这个并发和数据量级吗?
就这尼玛就敢上线了?
是你们飘了,还是真当成都人民提不动刀了?分分钟送你们上几次热搜第一啊!
熔断、降级有没有做?
压测有没有做?
紧急预案有没有做?
... ...
别说了,虽然我们只能看到表象,但是里面是一团什么浆糊我想大家肯定都能想到。
就这样吧,多说无益,我看看你们在评论区怎么喷,另外在心疼成都的兄弟1分钟。