每年的双11,阿里天猫淘宝支付宝的交易量都在逐年提升,去年交易额达到了1682亿元,在这样的体量下,整个系统都运行正常;而官方的火车票12306网站,春节抢票必无响应,而且放在平时也经常瘫痪。有人说,是12036的系统复杂度和支付宝的不是一个量级,两者没有可比性。可真的就是这样吗?
讨论此类的问题,很容易受到技术人员的怒怼。有一个技术从业者从商品SKU的角度分析了12306和天猫支付宝的系统复杂度,是这样解释的。
用户购买一个商品,在天猫库存是固定的,买走一个库存减少一个,直到为0则不能购买,16年天猫的商品大概是10个亿;而12306的火车票,17年初数据是有3500个列车车次,2000多个站点,从商品角度来说,它的库存是不固定的。
比如买了从起点到终点和起点到第三个站这两种情况下的库存减少是不一样的,前者买了就没了,后者却可以从第四个站继续购买。而用户购票的行为是不可控的,可以买任意区间的票,而前一个用户的购买会对后面用户的库存造成影响,这和阿里的固定商品库存不可同日而语。
而且火车票购买是实名制的,下单前后会有很多的身份验证,从这个角度说单个商品的购买流程也比天猫淘宝复杂得多。这样的解释看上去似乎很有道理?
上面的这一通解释都是围绕12306为什么容易崩溃打不开进行的,看上去12306系统比支付宝要复杂得多,所以就理所当然的运行不流畅,抢不到票。事实真的是这样的吗,有问过如果让阿里的工程师去开发12306的系统会不会是一样的结果?
作为一个理性的技术宅,要客观地看待这个问题。大家应该知道12306当时升级后为什么只支持支付宝支付,而不支持微信支付?因为当时火车票系统太烂,用户体验太差,马云的阿里团队进行了技术支持,帮助其优化了一通,才有了现在相对以前好一点的系统。不过后来也开始支持微信支付了。
客观上系统复杂不能作为系统容易瘫痪的理由,如果是这样,任何一个技术人员都没有了追求。开发的系统运行不好,不从自身找原因却要将锅推到问题太复杂,这不是一个真正的技术人该有的态度。看到这里,也终于明白技术人是如何一本正经的胡说八道的了吧。