12306一崩再崩,作为程序员你最想优化哪个功能?
这是来自知乎的一个问题:
临近春节,12306一崩再崩,抢票的痛苦,谁用谁知道,作为程序员你最想优化哪个功能?
请留言说说你的想法呀~
下面是我的想法。
12306在非春运时,访问量没那么大,也很少崩溃。
春运时访问量集中爆发,主要是因为大家都要抢票回家过年,只要春节这个传统节日本身没有变化,这种超高峰值的流量就一定会出现。
如何应对这种访问高峰呢?
想想没有12306的时候,那时也有春运,大家也买火车票,有的人是到火车站购票大厅窗口排队,有的是打电话,虽然有很多人因为买不到票而怨声载道,但窗口排队的机制和电话排队的机制,有两个很好的点:
已经排上队的人迟早会被服务(除非排到跟前没票了)。
再多人排队,服务不崩溃。
这两个点值得12306的软件系统借鉴,只要12306做到:
保障已通过网站或APP进入购票流程的人服务流程不中断
后涌进来的购票用户,不影响购票系统的稳定性
大家就可以接受了。
那具体怎么做呢?
抛两个拍脑袋的想法……
第一个,非常简单粗暴:
前置流量监测机制,进行限流,把软件服务能力之外的访问,全部挡在外面。
这样12306系统就回到了购票大厅窗口排队买票的状态,虽然服务能力有限,但排进来的人,都能得到基本的服务。
第二个,非常天真幼稚:
改变春节放假机制,把7天假期,变成14天或者21天。
这样的话,购票的峰值,自然就被摊平了~再配合第一种的限流机制,12306自然就稳住了~