过早客
  • 首页
  • 节点
  • 成员
  • 广告投放
  • 登录
  • 注册

12306的技术难点在哪儿?

IT技术 • wuBing • 发表于 7 年前 • 最后回复来自 o0_0o • 7 年前

十一回家火车票没有抢到,无奈蹭的同事顺风车回。感觉今年明显12306抢票难了,而且系统感觉也没那么快了。如果说访问量特别大的话,可每一辆车次都是分开的,甚至每一个座位都几乎是独立的,服务器分开不就行了。到底哪些方面是技术上实现比较困难的?

加入收藏 新浪微博 分享到微信 ❤赞 10957 次点击 0 人赞 0 人收藏

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

共收到21条回复
gasi 7 年前 #1 赞 2

北京到广州一列车,有7个车厢,每个车厢118个座位,中间停12个站,给郑州,武汉分别预留150个位子,请问应该怎样设计数据表存储,达到性能最优?一个座位有N种可能余票,每卖出一个座位,每种可能的余票都要刷新,这计算量就不小了。

xiaohao750 7 年前 #2 赞 0

最大的难点是在放票时能支持全民抢票,不出错不超卖,还得3分钟内卖光,12306的并发量远超淘宝,后端并发解决好才是重点,用12306的人关心的是买上票,把自己的id写进数据库。

gasi 7 年前 #3 赞 0

这个系统是铁科院电子所做的吧,之前得了国家科技进步一等奖。12306确实有些地方做的不够好,但这些年一直在改进,已经比当初好用很多了。至于抢不到票,这个锅不归12306背。1万人要回家,只有5000张票,12306系统再牛逼,也还是有5000人买不到票,12306变不出票来。

zhuzhuxia 7 年前 #4 赞 1

抢不到票的根本原因不在于系统好不好用,而是供需关系。

steve 7 年前 #5 赞 0

12306用户体验上做的太差,比如查询正晚点,每次要返回来差车次,并且不能保留历史记录。

ihuster 7 年前 #6 赞 0

@gasi 这两年确实处理能力有明显改进,那主要靠的是引入gemfire内存数据库,每辆车的状态修改顺序执行即可,内部表结构设计好,更新的复杂度都是非常有限的。论业务复杂性,比淘宝差远了。

ihuster 7 年前 #7 赞 0

复杂度N*N/2,假设有26个站,判断一个票是否可买,复杂度N*N/2大约是300。每次购票时Lock验证,依赖内存操作。

淘宝上判断商品是否可买,复杂度是1。 12306与淘宝在订单处理余货验证上复杂度300:1。

这就意味着如果一个系统支持1亿个并发用户在淘宝上并发买货,12306上只能支持30几万个用户并发买票。

对单一订单处理这一操作,理论情况大致这个样子。实际12306可做下优化,淘宝购物场景可能更复杂,不说300,几十倍的复杂度差异还是要有的。

以下一篇文章可以大致看下数据,行业标跑不了。数据库GemFire,10台服务器,2T内存,不知道什么攒法。
https://pivotal.io/big-data/case-study/scaling-online-sales-for-the-largest-railway-in-the-world-china-railway-corporation

Youngsh 7 年前 #8 赞 0

@gasi 阿里帮12306优化了架构,其次上了阿里云,要不还是以前的样子,一放票就挂掉;
至于楼主说的抢票难,是因为票只有这么多,需求在不断的增大,当然难抢了

Normanic 7 年前 #9 赞 0

12306确实一直在优化,现在可以选座了

linuxwww 7 年前 #10 赞 0

greenplum

yaluk 7 年前 #11 赞 0

就说一个很简单的场景, 你买了一趟北京发往广州的你在武汉上车的火车票,刚付了款你又后悔了退票了,前几个站点和后几个站点的该座位的票得全部重新计算排序,难吗?

hhqqy 7 年前 #12 赞 0

不谈算法,并发量就够喝一壶了

lizishu 7 年前 #13 赞 0

没啥技术难点,跟淘宝京东根本不是一个数量级的。所谓的并发量也是瞎忽悠,大部分都是查询,做个读写分离就是了。

tairan 7 年前 #14 赞 0

12306本身的场景非常复杂,说没难点的是自己无知了……

最近优化的手段就是那个16T的内存数据库,用钱砸出来的优化。。有钱任性

raging_sweet 7 年前 #15 赞 0

说没难度的,基本是没做过大型并发critical系统的

wzx19840423 7 年前 #16 赞 0

说12306不背锅的人也是幼稚的可以,以前电话订不到K字头车票,还可以到火车站排队买高铁坐票。现在倒好,要跑到网上抢高铁站票。

jobssssssssss 7 年前 #17 赞 0

凡是可以用钱堆出来的东西都是没难度的,12306很好的验证了这一点。那些一味说12306的太复杂的,也是人云亦云。

o0_0o 7 年前 #18 赞 0

有关12306技术难度和实现水平的又一篇重磅文章
http://mp.weixin.qq.com/s?src=3&timestamp=1507885102&ver=1&signature=LtFf*mGRShMfKat2SOZNFEQHlTOQOgIEIsrTVs7WSezx29DdvhmXTGhcN94D2j5zmuv9tm4VM1mcBD8CdSXrmVVaBYTeq6X6Zb4rZc*zXiGL8fAS*Y*ggUl6XdC1S1H1VM0ShkHJn-uZi8WqjZzE2Q==

技术帖|如果让我来做12306铁路订票系统
http://mp.weixin.qq.com/s?src=3&timestamp=1507885102&ver=1&signature=d3Qm1AVwowjCvpd2mhjzjfy0esNr305hi863XAnXE6TKKo7-LOc03apnEEOYcMTVo7zlad-zEbosbOWKR4THuulI9la7zm94bUTeERsUceuyFqIGB-YdjzL-a3tnuLgNAJ*haTumRKAS*lNq0jcqaA==

malusama 7 年前 #19 赞 0

突然感觉穿越了

gocome 7 年前 #20 赞 0

@yaluk 退票场景应该是另外的,其实和抢票没关系了
对系统也没什么冲击
@o0_0o 链接都过期了

o0_0o 7 年前 #21 赞 0

@gocome 找到另外的链接了
http://bbs.tianya.cn/post-free-5341476-1.shtml
http://huaban.com/pins/133315230/

请绑定手机号后,再发言,点击此处
Guozaoke.com—源自武汉的高端交流分享社区
相关主题
华为新出的电脑2W7,这电脑买着当挂件吗?
开发了一个管理 Linux 服务器的桌面可视化管理工具,求蹂躏
618打算攒一套mac mini,有没有入手过的童鞋,说说体验
阿里巴巴华中总部今天正式入驻阿里中心·武汉
服务器可视化采用纯前端渲染,这个技术实现难度如何
想配一个台式机,求推荐
最近时间少了, 隔了这么久, 才做了一个网站
做了一款摸鱼软件,有人要试用吗?
有搞嵌入式硬件的吗?
搞了个AI 生图的网站,不需要登录,永久免费

过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号