转自西西河,有关12306技术难度和实现水平

caicaizi
微博上看到的~
转自西西河,有关12306技术难度和实现水平的又一篇重磅文章。作者是前淘宝工程师,后来在一家电商公司做技术副总。和大多数人一样,12306刚出来时他也骂,甚至为了证明这事儿很容易做,他发起了一个"替12306设计系统"的开源项目,两年后就有了这篇长微博。如果你还觉得自己很牛逼,先超越他的思考吧。

君子在上则息万物之嚣,在下则平一方之难。
StJay
mark

你所浪费的今天,是昨天死去的人所奢望的明天
你所厌恶的现在,是未来的你回不去的曾经~
高级流氓
赞,说的还是很客观!

流氓本色!
schhhu
中国这么一个人情社会,没有监管机制,什么方法都破不了,即使有,监管机制也是人情社会的一部分。后面说的那四种方法的前三种,用到最后,跟现在的问题就一致了,最后一种,觉得应该不合法。
只要不断在改进,就是好的,起码他是在乎屁民的,怕就怕,朱门酒肉臭路有冻死骨。

不跟人吵架,不跟人激烈辩论,告自己,仅此一条
咔拉卡
居然拿G71作例子。
坐G71回家的伤不起呀。
simon5瘦猴
不用说也知道,过节得有多少瞬间的访问压力,硬件为过节投入不值啊

浮云……神马都是浮云……
任你跑
技术那段说的还是很客观的。

低调做人!!!
dingding'
很多人一直以为网站就是那么回事儿,尤其那些自以为懂计算机的部分人,连我周围很多学计算机的硕士也是这么认为的,还是那句话,事非亲历不知难。西工大官网是个网站,,百度还就一个框呢,,淘宝网也是一个网站,,网站跟网站能一样么,,
明夷
12306不论做得好不好,在同等条件下其他公司可以做得更好。不能说因为很难,所以做的不好就应该了,既然很难,那就去不断优化调整。同样的投入资金,给重视技术的互联网公司,做出的产品肯定不同,因为在无关环节上消耗的成本不同,所以必然导致最终结果的不同,也可以粗略的理解为真正投入到研发和突破性能瓶颈的环节上的资金不同。
这很正常,时间倒退到1987年,军工类通信研究所的人估计做梦都想不到华为会达到这个地步(说实话,凭他们中大多数人的智商,估计都觉得通信行业永远不会开放),里面的核心团队是他们一辈子都无法企及的。华为当年的投入真的能比军工类通信研究所的投入研发的资金高吗?其实就是成本被耗费在了不同的地方,浪费的多少不同。
当然10楼说的很对,很多人就觉得一个破网站嘛,谁都可以做,但就我感觉,在西工大这个现象尤为严重,9院副院长当时就说,网站那都不叫技术,一周时间搞定。

怀念工大
网站那都不叫技术,海院老师也这么说过啊。软件工程课要求做数据库或者网站,机房开放时间和学院专业英语课重叠,我旷了一节专业英语课去做,结果专业英语课老师也是说做网站有什么出息。
烟中列岫青无数
提到amazon和阿里的云计算,前面居然还拿八达岭高速当反例,说什么不能因为黄金周堵车就把高速修成10车道不然其余时间就会闲置给居民晒谷子云云。
自己打自己耳光还有这么玩的。

菜,要辣的才过瘾!
dingding'
楼上几个同学一看就是对网站一知半解的。随便在自己的机器上搞几个页面当然容易,小学生估计你教他也会做。你们没体会到网站背后实质的东西。我们学校的学生绝大部分对互联网公司后台的东西几乎一无所知。前段时间找工作遇到一个交大的娃,,当时跟他聊12306,他说是大学里面随便拉出一个本科生做个毕业设计都比12306强,,扯淡吧。我暑假在阿里实习了几个月,,接触了自己部门做过的一些东西,复杂程度超出想象的。
我们学校现在这波年轻人都肿么了,,一天到晚竟瞎吐槽,有多少人是在一天天认真做事情的。这些观点和言论其实在真正懂行的人眼里反倒显得很无知。
你们知道阿里今年在西安总共发了接近70个offer,人家西电一个学校就拿走50多个。我这里没有要妄自菲薄的意思,这个结果是从近千人里面笔试和一轮一轮的面试中挑出来的,不服气的可以自己来年去面试。看看我们自己的学生现在外面的认可程度!
caicaizi
赞! 有些人就是无知者无畏 井底之蛙所见偏颇
dingding' #15
楼上几个同学一看就是对网站一知半解的。随便在自己的机器上搞几个页面当然容易,小学生估计你教他也会做。你们没体会到网站背后实质的东西。我们学校的学生绝大部分对互联网公司后台的东西几乎一无所知。前段时间找工作遇到一个交大的娃,,当时跟他聊12306,他说是大学里面随便拉出一个本科生做个毕业设计都比12306强,,扯淡吧。我暑假在阿里实习了几个月,,接触了自己部门做过的一些东西,复杂程度超出想象的。 我们学校现在这波年轻人都肿么了,,一天到晚竟瞎吐槽,有多少人是在一天天认真做事情的。这些观点和言论其实在真正懂行的...

君子在上则息万物之嚣,在下则平一方之难。
铁匠
现在12306的困境就是票不够,增加系统的容量的结局就是让有更加先进刷票设备的黄牛更容易把票全刷走。
12306的实现难度,以我以前在一个同时在线百万级的IM的工作经历来看,实现起来难度很大。虽然几个亿的费用有水份,但是肯定不是几千万就能搞定的事情。淘宝现有的系统也不能直接使用,火车票的库存每出一张票,库存都会有很大的变化,而不像普通商品那样直接减1。
至于把火车票像机票那样让各代理来卖,好像还是没有解决核心系统的算票库存的复杂问题。至于请技术外援,就更扯蛋了,除了专职的,用非常长的时间把各个问题理清楚,然后统一修改,不然大家走马观花,一人上来改一轮,这系统就死定了。

??? ????? ??
红米
其实可以和其他厂商合作 或者直接把12306外包给淘宝 利用淘宝的硬件 春节结束了淘宝硬件还做电商
simon5瘦猴 #8
不用说也知道,过节得有多少瞬间的访问压力,硬件为过节投入不值啊
红米
把12306直接外包给淘宝做 把火车票当成普通淘宝商品 怎么样? 应该可以利用淘宝的硬件资源吧 淘宝也可以从政府合同获取丰厚资金
铁匠 #17
现在12306的困境就是票不够,增加系统的容量的结局就是让有更加先进刷票设备的黄牛更容易把票全刷走。 12306的实现难度,以我以前在一个同时在线百万级的IM的工作经历来看,实现起来难度很大。虽然几个亿的费用有水份,但是肯定不是几千万就能搞定的事情。淘宝现有的系统也不能直接使用,火车票的库存每出一张票,库存都会有很大的变化,而不像普通商品那样直接减1。 至于把火车票像机票那样让各代理来卖,好像还是没有解决核心系统的算票库存的复杂问题。至于请技术外援,就更扯蛋了,除了专职的,用非常长的时间把各个问题理清楚,然...
月明星稀
票不够是硬伤。网络购票这个形式还是很方便大家的。

铁匠
火车票怎么能当成普通商品?比如说北京到广州的车票,一个人买了从北京到广州和买北京到湖南这两个引起的结局是完全不一样的。更不用说铁路自身系统重新整合这件事情了。
现在的问题根本就不是系统容量的问题。最近使劲提升系统容量就是把以前一个小时卖光的票(第一年网络售票的时候,我曾经在开卖后一个小时才进的系统,还买上了卧铺)变成了10秒钟。普通人即使用上抢票助手也搞不过那些手中有各种先进设备的黄牛。
春运的票就那么多,买不上票的人肯定很多,每年12306都要承担起被骂的责任。
现在12306唯一的改进空间就是跟公安部的系统去对接,搞定真正的实名制,然后制定一个一个人在春运期间能退换票的次数上限。
我估计不出两年,关闭网络售票的唤声会越来越高。。。。。。
红米 #19
把12306直接外包给淘宝做 把火车票当成普通淘宝商品 怎么样? 应该可以利用淘宝的硬件资源吧 淘宝也可以从政府合同获取丰厚资金

??? ????? ??
铁匠
还有把这事弄给淘宝对于技术圈来说不是好事情。
这件事情单独弄出来,中国至少还能再出一个技术牛X的团队。而给淘宝,只是让一个很肥的团队更肥一些。
红米 #19
把12306直接外包给淘宝做 把火车票当成普通淘宝商品 怎么样? 应该可以利用淘宝的硬件资源吧 淘宝也可以从政府合同获取丰厚资金

??? ????? ??
红米
我的意思是从技术角度提高大家购买火车票的舒适度 而不是考虑每个人都能买到票
把卖票外包给淘宝就可以避免再次大规模的投资硬件 造成资源浪费
铁匠 #21
火车票怎么能当成普通商品?比如说北京到广州的车票,一个人买了从北京到广州和买北京到湖南这两个引起的结局是完全不一样的。更不用说铁路自身系统重新整合这件事情了。 现在的问题根本就不是系统容量的问题。最近使劲提升系统容量就是把以前一个小时卖光的票(第一年网络售票的时候,我曾经在开卖后一个小时才进的系统,还买上了卧铺)变成了10秒钟。普通人即使用上抢票助手也搞不过那些手中有各种先进设备的黄牛。 春运的票就那么多,买不上票的人肯定很多,每年12306都要承担起被骂的责任。 现在12306唯一的改进空间就是跟公安部的...
铁匠
对于买火车票这件事情来说,最大的舒适度就是买上票,没有买上,再好的服务都是浮云。以前排队买票的时候,排一晚上,能买上,就非常满意了。
把卖票外包给淘宝,淘宝一样要扩容的,淘宝买硬件和12306买硬件有差别吗?
红米 #23
我的意思是从技术角度提高大家购买火车票的舒适度 而不是考虑每个人都能买到票 把卖票外包给淘宝就可以避免再次大规模的投资硬件 造成资源浪费

??? ????? ??
红米
12306就是解决你买票要排队的问题 在12306上买到票不是比排队买到票要舒适吗?
把卖票外包给淘宝的好处是:淘宝已经对硬件进行了大规模投资,平常淘宝并不需要这么多硬件,卖火车票对淘宝来说就是一次11.11而已。
平常的时候淘宝利用这些富余的硬件做云服务。
你总不能让铁道部12306也去做云服务吧?
铁匠 #24
对于买火车票这件事情来说,最大的舒适度就是买上票,没有买上,再好的服务都是浮云。以前排队买票的时候,排一晚上,能买上,就非常满意了。 把卖票外包给淘宝,淘宝一样要扩容的,淘宝买硬件和12306买硬件有差别吗?
贱人
卖火车票对淘宝来说就是一次11.11而已 哥们 这句话是完全错误的 事情远比你想象的要复杂的多
红米 #25
12306就是解决你买票要排队的问题 在12306上买到票不是比排队买到票要舒适吗? 把卖票外包给淘宝的好处是:淘宝已经对硬件进行了大规模投资,平常淘宝并不需要这么多硬件,卖火车票对淘宝来说就是一次11.11而已。 平常的时候淘宝利用这些富余的硬件做云服务。 你总不能让铁道部12306也去做云服务吧?
红米
不要太较真 这句话的意思是淘宝现在的硬件对于12306来说已经够了 不需要再投资硬件
贱人 #26
卖火车票对淘宝来说就是一次11.11而已 哥们 这句话是完全错误的 事情远比你想象的要复杂的多
铁匠
前面我说的那些话,你都完全没有看明白吗?
1.增加容量只是让黄牛抢得更快一些,对于普通百姓没有任何实际意义。
2.淘宝的模式跟铁路售票的模式完全不一样,而且铁路的票不但是用户拿手上的实体票,还有涉及到铁路的整个系统。把铁路的这套系统全改了跟淘宝去对接,这个成本不比买这几台服务器低。
红米 #25
12306就是解决你买票要排队的问题 在12306上买到票不是比排队买到票要舒适吗? 把卖票外包给淘宝的好处是:淘宝已经对硬件进行了大规模投资,平常淘宝并不需要这么多硬件,卖火车票对淘宝来说就是一次11.11而已。 平常的时候淘宝利用这些富余的硬件做云服务。 你总不能让铁道部12306也去做云服务吧?

??? ????? ??
我不是纸杯
铁路2014年春运从1月16日至2月24日,共计40天。
1111没有持续40天的,而且原帖也分析了,两者库存完全不一样。
还有,大家都在说的,黄牛和普通乘客购票能力,或者说抢票能力,不在一个层次。系统越先进,抢票能力强的黄牛反倒更占优势。
贱人 #26
卖火车票对淘宝来说就是一次11.11而已 哥们 这句话是完全错误的 事情远比你想象的要复杂的多

一个沉溺于自我完善而不能自拔的人
我不是纸杯
规定春运40天期间内,退票暂不退款,等春运结束若干天内逐步退款。
退之前,对每个人的退款额排序!
铁匠 #21
火车票怎么能当成普通商品?比如说北京到广州的车票,一个人买了从北京到广州和买北京到湖南这两个引起的结局是完全不一样的。更不用说铁路自身系统重新整合这件事情了。 现在的问题根本就不是系统容量的问题。最近使劲提升系统容量就是把以前一个小时卖光的票(第一年网络售票的时候,我曾经在开卖后一个小时才进的系统,还买上了卧铺)变成了10秒钟。普通人即使用上抢票助手也搞不过那些手中有各种先进设备的黄牛。 春运的票就那么多,买不上票的人肯定很多,每年12306都要承担起被骂的责任。 现在12306唯一的改进空间就是跟公安部的...

一个沉溺于自我完善而不能自拔的人
红米
1 现在网上售票的确有黄牛抢票,但这是发展中的问题,总会有方法解决这个问题,不能因为有问题就从现代社会返回原始社会吧?何况以前排队买票也有黄牛,相信你也是知道的。
而且网上售票也不能说对老百姓没有意义,现在网上抢票插件也非常多,全自动操作而且免费,打开插件,输入条件,点击运行,剩下的就不用你管了,整个买票过程全自动。
其实你不能接受的是以前要排队一晚上才能知道不能买到票,现在10秒钟你就知道了,太快了,快的你不能接受。
2 就具体逻辑来说,11.11和火车票的确有很多不同的,但是这两者的差别再大也还是电子商务,火车票不过是逻辑更复杂一点的商品而已。到时侯铁道部只要管出票和收钱就可以了,要改整套系统?你倒说说要改哪些系统?
铁匠 #28
前面我说的那些话,你都完全没有看明白吗? 1.增加容量只是让黄牛抢得更快一些,对于普通百姓没有任何实际意义。 2.淘宝的模式跟铁路售票的模式完全不一样,而且铁路的票不但是用户拿手上的实体票,还有涉及到铁路的整个系统。把铁路的这套系统全改了跟淘宝去对接,这个成本不比买这几台服务器低。
红米
有黄牛抢票说明系统逻辑有很大漏洞 系统没办法辨别普通旅客和黄牛 说到底还是12306做的烂 而不是说12306做的很先进
以前排队的时候也有黄牛 和现在一模一样 只不过以前大家都在火车站排队 现在都在网上排队而已
我不是纸杯 #29
铁路2014年春运从1月16日至2月24日,共计40天。 1111没有持续40天的,而且原帖也分析了,两者库存完全不一样。 还有,大家都在说的,黄牛和普通乘客购票能力,或者说抢票能力,不在一个层次。系统越先进,抢票能力强的黄牛反倒更占优势。
我不是纸杯
所以说,按你说的“淘宝已经对硬件进行了大规模投资”,只是帮倒忙,成就了黄牛。
红米 #32
有黄牛抢票说明系统逻辑有很大漏洞 系统没办法辨别普通旅客和黄牛 说到底还是12306做的烂 而不是说12306做的很先进 以前排队的时候也有黄牛 和现在一模一样 只不过以前大家都在火车站排队 现在都在网上排队而已

一个沉溺于自我完善而不能自拔的人
anavrin
你一句 没办法辨别普通旅客和黄牛 说到底还是12306做的烂
就说明你是外行了。
12306真心不好做。他跟淘宝业务的不同,决定了压力的不同。
你可以想象淘宝双11,大家都去一家店铺抢一件商品,并且有人用工具去抢,
淘宝是否扛得住。
红米 #32
有黄牛抢票说明系统逻辑有很大漏洞 系统没办法辨别普通旅客和黄牛 说到底还是12306做的烂 而不是说12306做的很先进 以前排队的时候也有黄牛 和现在一模一样 只不过以前大家都在火车站排队 现在都在网上排队而已

那一年,苍井空还是处女,冠希还没有相机,李刚还没有儿子,菊花只是一种花,企鹅不是qq,2B我只知道是铅笔,买方便面还有调料,杯具只是用来刷牙,黄瓜香蕉只是用来吃的,教授还不是叫兽,太阳还不叫日,领导不会写日记,鸭梨还没有这么大,肚子大了知道是谁的,我们还相信真情。
anavrin
和现在一模一样 只不过以前大家都在火车站排队 现在都在网上排队而已
业务分析你就错了
以前是在各个预售网点排队是分散的,压力小。
现在是统一在一个网站排队,压力大。
红米 #32
有黄牛抢票说明系统逻辑有很大漏洞 系统没办法辨别普通旅客和黄牛 说到底还是12306做的烂 而不是说12306做的很先进 以前排队的时候也有黄牛 和现在一模一样 只不过以前大家都在火车站排队 现在都在网上排队而已

那一年,苍井空还是处女,冠希还没有相机,李刚还没有儿子,菊花只是一种花,企鹅不是qq,2B我只知道是铅笔,买方便面还有调料,杯具只是用来刷牙,黄瓜香蕉只是用来吃的,教授还不是叫兽,太阳还不叫日,领导不会写日记,鸭梨还没有这么大,肚子大了知道是谁的,我们还相信真情。
红米
呵呵 黄牛是一直以来就存在的问题 以前排队买票的时候同样是有黄牛的
在火车站排队买票同样会有可能买不到票
以前大家在火车站抢票 现在大家在家里点一下运行抢票 你愿意去火车站还是在家里抢票?
而且黄牛本人可不会去排队的 而旅客却要自己去排队
何况黄牛这个问题肯定可以解决的 只不过现在的铁道部不想解决而已 要不然怎么捞外快呢 把卖票业务外包给淘宝肯定可以解决黄牛 毕竟在淘宝捞外快是很危险的事情
我不是纸杯 #33
所以说,按你说的“淘宝已经对硬件进行了大规模投资”,只是帮倒忙,成就了黄牛。
红米
呵呵 网站同样可以分流 就比如说大家都输入一个网址 其实被分流到不同的服务器处理了
你以为只有一台服务器在处理卖票业务?
anavrin #35
和现在一模一样 只不过以前大家都在火车站排队 现在都在网上排队而已 业务分析你就错了 以前是在各个预售网点排队是分散的,压力小。 现在是统一在一个网站排队,压力大。
anavrin
当然可以分流,但是分流的压力比淘宝大得多。硬件都是有极限的。
顺便反问你一句谁去负责分流的?负责分流的硬件是一个还是多个?
红米 #37
呵呵 网站同样可以分流 就比如说大家都输入一个网址 其实被分流到不同的服务器处理了 你以为只有一台服务器在处理卖票业务?

那一年,苍井空还是处女,冠希还没有相机,李刚还没有儿子,菊花只是一种花,企鹅不是qq,2B我只知道是铅笔,买方便面还有调料,杯具只是用来刷牙,黄瓜香蕉只是用来吃的,教授还不是叫兽,太阳还不叫日,领导不会写日记,鸭梨还没有这么大,肚子大了知道是谁的,我们还相信真情。
红米
你不说火车站售票是分散 网络购票要排队了?
你不用问我什么负责分流 我要是告诉你我不是做网站的 你会不会说不是做网站的就一边去? 呵呵
anavrin #38
当然可以分流,但是分流的压力比淘宝大得多。硬件都是有极限的。 顺便反问你一句谁去负责分流的?负责分流的硬件是一个还是多个?
思念虚幻
不懂技术,又不尊重技术...很多事情想当然,专家一开口不管对不对,只要不顺着民意就去喷...

此ID只因思念一个人...
AYD
铁路售票系统原来就是联网的。中国有约2000火车站,假设每站10个窗口,假设还有20000个代售点,这样每次放票,就是这几万个点在刷全国联网的票库。查票出票付款都是售票员人工完成,效率低,但网络压力绝对地小。
而网购开始后,同一时刻刷票的就是千万以上的量级,支付又要链接银行网络,就算外行也知道数据库的压力实在是大。
anavrin #35
和现在一模一样 只不过以前大家都在火车站排队 现在都在网上排队而已 业务分析你就错了 以前是在各个预售网点排队是分散的,压力小。 现在是统一在一个网站排队,压力大。

事究竟、度无极、到彼岸 http://bbs.openlab.net.cn/blogs/ayd/default.aspx
anavrin
你不懂,可以讨论,但别妄下定论,这都是你下的定论。
1.何况黄牛这个问题肯定可以解决的 只不过现在的铁道部不想解决而已
2.说到底还是12306做的烂 而不是说12306做的很先进 以前排队的时候也有黄牛 和现在一模一样。
全国成千上万个售票点和几十台服务器分流比,你非说和现在一模一样。
睁着眼说瞎话,就没有讨论的基础。
另外淘宝不同店铺不同商品不同url,业务上耦合就低,很容易用不同服务器数据库,分开管理。
12306不管数据库运行在几台机器上,就是一个数据库,
必须承受所有订票的访问,不像淘宝能分流。
红米 #39
你不说火车站售票是分散 网络购票要排队了? 你不用问我什么负责分流 我要是告诉你我不是做网站的 你会不会说不是做网站的就一边去? 呵呵

那一年,苍井空还是处女,冠希还没有相机,李刚还没有儿子,菊花只是一种花,企鹅不是qq,2B我只知道是铅笔,买方便面还有调料,杯具只是用来刷牙,黄瓜香蕉只是用来吃的,教授还不是叫兽,太阳还不叫日,领导不会写日记,鸭梨还没有这么大,肚子大了知道是谁的,我们还相信真情。
红米
一个数据库 你是说数据库并发度不足以支持这么多访问咯? 网站天才 哈
能看懂的一句话就够了 看不懂的说再多也是对牛弹琴 88
anavrin #42
你不懂,可以讨论,但别妄下定论,这都是你下的定论。 1.何况黄牛这个问题肯定可以解决的 只不过现在的铁道部不想解决而已 2.说到底还是12306做的烂 而不是说12306做的很先进 以前排队的时候也有黄牛 和现在一模一样。 全国成千上万个售票点和几十台服务器分流比,你非说和现在一模一样。 睁着眼说瞎话,就没有讨论的基础。 另外淘宝不同店铺不同商品不同url,业务上耦合就低,很容易用不同服务器数据库,分开管理。 12306不管数据库运行在几台机器上,就是一个数据库, 必须承受所有订票的访问,不像淘宝能分流。 ...
铁匠
黄牛的问题应该快要解决了,新闻上说了,马上要跟公安部的系统对接,到时候黄牛只能去租真的身份证来刷票了。解决黄牛的问题,别的问题就没有办法解决了,票就那么多,你买到一张,必然有人就买不到了。
现在12306在风口浪尖上,不然12306把360跟金山这些的告上法院,肯定能获得不少的赔偿的。想想360和金山如果敢搞个双11抢购器,马上会被阿里整得死死的。如果12306下手再狠一点,判断出机器刷票行为,就封帐号,估计会被骂死的。搞个动态验证码都会被黄牛们操纵起来骂得死死的。
12306内部肯定是作了分区分流了,不然肯定扛不住这么多的流量。至于继续往上堆硬件,我还是那个看法,堆更多的硬件,只是让更有硬件优势的黄牛抢得更快一些,不会对普通民众有太大的影响。
红米 #36
呵呵 黄牛是一直以来就存在的问题 以前排队买票的时候同样是有黄牛的 在火车站排队买票同样会有可能买不到票 以前大家在火车站抢票 现在大家在家里点一下运行抢票 你愿意去火车站还是在家里抢票? 而且黄牛本人可不会去排队的 而旅客却要自己去排队 何况黄牛这个问题肯定可以解决的 只不过现在的铁道部不想解决而已 要不然怎么捞外快呢 把卖票业务外包给淘宝肯定可以解决黄牛 毕竟在淘宝捞外快是很危险的事情

??? ????? ??
习惯了跑偏
最后一个想法不错啊,搞一个充值账户,提现只能到派出所去取,估计黄牛就不多了

我想我会飞,结果。。。
还是不会!
稻草人的迷失
“但交易系统登记一个交易可不像原子绕着原子核跑一圈那么简单”
呵呵