权相佑孙泰英浅论12306⽹上购票系统的设计
12306可以说是⼀个成功型的案例。
你对他不好的印象是来⾃于12306刚出来那年,抢⽕车票导致各种崩溃,加载不出来,特别难辨认的验证码,还要安装什么安全的证书。
今日娱乐头条后来⼏年12306做了重⼤的底层技术变⾰,但是⽹页UI并没有换(关于UI这个东西,更换UI对⽤户来说是有学习代价的,尤其12306是⼀款⾯相全国⼈民的⽹页和app,UI是不能随便换的)
唐禹哲微博所以你就会理所当然的认为现在的12306还是以前的12306,⾮也,现在的12306每天能扛得住30亿次查询请求。
通过官⽅的⽹页、铁路12306 app、携程、去哪⼉、超级⽕车票,还有各种民间程序员写的抢票⼯具等等,包括各种浏览器插件不停的刷新抢票。还有⼈嫌弃⾃⼰不是下铺,也要刷刷刷,改成满意的为⽌。
有⼀张⽕车票被退了,其实这张票只是⼀个区间,⽐如西安始发,到北京终点这张票被退了,这样按道理来说中间任意经停站到任意经停站都可以买票,等等,会有很多意想不到的需求,包含各种奇葩的组合
综上所述,其实12306的业务逻辑远⽐淘宝这样的电商要复杂很多
需求分析、系统设计不仅要考虑到全国各省的情况,还要考虑窗⼝买票,电话买票不受互联⽹购票的影响。
毕竟在窗⼝查出⼀张票,在⽤户决定买它之前,这张票不可能被互联⽹购票的⼈给抢了。也就是说互联⽹购票在票源稀缺的情况下,和窗⼝电话购票相⽐是没有优势的。
任静付笛生互联⽹购票之所以会失去优势,主要原因就是12306购票系统为了⽀持每天⼤量的查询请求,把票数的缓存时间调整的极长,笔者⽬测可能5分钟都不⽌。
王筝老公简单说就是现在西安去北京的票是0张,突然有⼈退了票,这时2个⼈,⼀个窗⼝订票,⼀个互联⽹订票。
互联⽹订票的⼈刷新发现还是0张,当然他也是不停地刷新,但是得到的是旧的缓存信息
窗⼝订票的⼈花了5分钟时间排队,等到他的时候,互联⽹订票的⼈刷新出来了⼀张余票,他点击购买,选乘坐⼈,提交订单的时候,窗⼝排队的⼈也在售票员那⾥查到了⼀张余票,这时候互联⽹订票者提交的订单会失败,窗⼝订票的⼈会成功买到这张宝贵的票源。
然⽽这个故事还没有结束。在窗⼝购票的那个⼈开⼼的拿着⾃⼰的票⾛了之后,互联⽹购票的⼈回到票源查询界⾯刷新发现还是有⼀张余票,他看到的还是旧的缓存,点击票源会收到不是最新票源的提
女优简介
⽰,直到5分钟之后,票源会再次变为0。
简单的来说,12606就是这样设计的,从此春运再多⼈抢票也不会导致⽹站直接崩溃,⼤不了就是余票为0喽。