我觉得我有必要为12306洗地

自由PHP 发布于 2014/01/15 15:50
阅读 949
收藏 1

    2012年春运的时候,12306就是个渣渣,随后有人成立了一个12306ng的项目组,还有论坛,但是至今也没有出成果,这说明什么?而且论坛曾有人亲自承认,当初把架构想的过于简单。如果有楼主想的那么简单,这么开源系统应该早就出来了。

    铁路售票涉及渠道、各区段票源分配,座位分配,空闲区段票源回收,座位一致性判断。

    每卖一张票出去,就需要对票池重新进行统计,放票,12306势必就进行一些处理,以保证票池正常运转,这样窗口售票系统就能流畅运行。

    比如说一张区间票卖出去了,实际上反而多了起点到区间起点、区间终点到终点两张票。还有很多你根本想不到,单纯的必做一件商品是完全错误的思维。

    说到座位,你怎么可能和商品一样,座位是不可能一个座位卖给两个人的。当然,上面说的都是有解决方案的,因为窗口售票已经这么多年了,但是从来没有听说售票系统和银行系统是一个原理的说法,所以,我认为12306最关键的地方在于负载(在相当于淘宝双十二活动的情况下保证这么复杂的处理过程的效率)。

    处理流程如下(以一张广州到武汉的D2104为例,我要购买韶关到长沙的票):

  1. 我先下订单,购买韶关到长沙的票
  2. 先看为韶关站分配的D2104的票还有几张,如果没有了,直接拒绝
  3. 如果有票,查询哪个座位从韶关到长沙一直空着(很明显,两个不同的座位联程不能称之为一张票)
  4. 为这张票上锁,开始对韶关到长沙的六站的某个座位上锁,票数减1(后面还有人抢票呢)
  5. 中间省去N个步骤,出票
  6. 广州到韶关多出一张票,长沙到武汉多出一张票

    我到现在完全还想不清楚12306的架构是怎么回事,所以我就不喷12306,我连百万流量的负载都没有处理过,何必妄自菲大去对一个几亿人刷票的12306说三道四

    再说说12306,据说他们找过各大公司求助,但是各大公司都拒绝了,只提供了技术顾问,只有淘宝提供了一套购票排队方案。如果这么简单,为什么各个公司放着出名的机会不用反而委婉拒绝呢?我想,这完全是个泥潭,淘宝2012年双十二的时候,三千淘宝工程师随时待命,还有各大银行、物流配合运转。而且除外淘宝以外,几乎找不到几家有过如此流量的经验,人力成本也高,做得好还好,做不好那完全是打脸。

    12306是没有解决方案的,欧洲的铁路系统是很庞大,但是整个欧洲有多少人,而且很多人出门都自己开车,而且他们的人口流动远远没有中国厉害。所以即使用了他们的系统,也完全没有办法解决的(没有解决经验,就没有解决方案)。

    奥巴马的医疗系统,也是花了几亿美金吧,还不是几万人上去,就挂了。

    所以,我觉得12306是一个足够复杂的系统,但是问题的根源不在于这里,而在于本身的铁路体制以及很多人买不到票的急迫心理

加载中
0
熊猫与猫无关
熊猫与猫无关

其实很多人就是抱着“这个其实很简单,原理细节我不管”的态度来看待这件事情的。

0
月影又无痕
月影又无痕

12306的案例世界上独一无二,我感觉网络上的人,太小看了铁道部的研究能力了。

这几年的高铁技术,就是最大的佐证。

割无可割的韭菜
割无可割的韭菜
最后一句,把铁盗部黑出翔了!
0
newzai
newzai

淘宝在1212秒杀的时候,有几个人有外挂,而且是不停的在重复的刷呢?

12306就不一样的,现在几乎都是用插件,外挂软件来挂票,在整点开卖的前5s和开卖后的5分钟之间,只要本人还没有买到票,就会不停的刷票。

而且这个刷票,可以说基本上,用插件都是毫秒级别的,至少是200ms左右。

在加上全国的兄弟姐妹们一起抢票,在整点开售的那几分钟,每秒钟的请求绝对是上一次的。。。

难道淘宝1212,有上亿人在同一个时间点去秒杀?

0
宅男小何
宅男小何
确实难,但是也确实做得烂!
0
ueharaai
ueharaai
没票再快也是卡!连这都想不通就不要搞什么构架了。我倒是希望能保持普通票台的卖票速度就可以了,反正就那么多票,要那么快干嘛???
0
麦豆
麦豆
难点在业务,不过网站做的真的烂
0
铂金小虎
铂金小虎
一定要多洗,争取洗地帖主们都坐飞机回家,12306感激不尽.
0
一只囧蟹
一只囧蟹
超级电梯算法!
0
滔哥
滔哥

呵呵。。。

打个JY路过

返回顶部
顶部