论坛首页 Java企业应用论坛

[纯技术讨论]从12306谈海量事务高速处理系统

浏览 9177 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-01-16  
情已逝 写道

先确定瓶颈在哪里再说?

我觉得窗口,电话和12306最终都会到一个集中式系统处理,不然他们如何做到一致?这个系统才是瓶颈所在。等铁道部把这个系统升级再谈架构。

单从12306下手没太大意义,CPU和内存都上去了,总线速度跟不上去,能有性能提升吗。

铁路内部有个售票系统,应该是它来把票扔给网站,电话和窗口,从我了解的情况,每个窗口分到的票都是预先分的,所以对它的整体架构没啥影响,晚上做个批处理就ok了,然后把余票第二天再重新分配一下也可以了
0 请登录后投票
   发表时间:2012-01-17  
铁路内部的票源分配制度,会对这个系统有很大影响.
铁路的票务分配是有阶段的,那些票在啥时候出,出多少,留多少,给窗口留多少,给火车站留多少,这些都是有详细规定的.
可惜这些内部制度是不对外公开的,因此人们只能盲目的去各个售票途径来碰运气,大量的资源就消耗在这些无效的分配上了.

另外一个性能的压力点,在支付上面,目前只能通过网银支付,这样等于把这种庞大的支付压力同时传递给银行系统来承担,光在支付这一个点上都抗不住.

所以淘宝做到一定时候,就必须搞自己的支付服务,因为对任何一家银行来说,忽然增加这么大的交易压力,都是难以承受的.

很多对于这件事情的讨论,还是局限在单纯技术的实现层次上,并没有从整体上看,总体的压力点在那里.
0 请登录后投票
   发表时间:2012-01-17  
硬件很重要,没有好的架构的软件支持,也显示不出优势
0 请登录后投票
   发表时间:2012-01-17  
我认为12306的系统可以说是海里事务,但是高速处理根本就谈不上。
首先票在哪里就是个问题,如果票在以前的售票系统里,那每次售票都需要和以前的售票系统做数据交换,那就不可能被认为是一个瞬时动作,也就谈不上高速。
其次付款的时候要和各家银行的网银做数据交换,这也不是一个瞬时完成的动作。
0 请登录后投票
   发表时间:2012-01-17  
楼主分析的很有道理啊!
0 请登录后投票
   发表时间:2012-01-17  
sslaowan 写道
情已逝 写道

先确定瓶颈在哪里再说?

我觉得窗口,电话和12306最终都会到一个集中式系统处理,不然他们如何做到一致?这个系统才是瓶颈所在。等铁道部把这个系统升级再谈架构。

单从12306下手没太大意义,CPU和内存都上去了,总线速度跟不上去,能有性能提升吗。

铁路内部有个售票系统,应该是它来把票扔给网站,电话和窗口,从我了解的情况,每个窗口分到的票都是预先分的,所以对它的整体架构没啥影响,晚上做个批处理就ok了,然后把余票第二天再重新分配一下也可以了


不太可能是你说的这种分配方式。

1.如果按车厢预分的话,同一节车厢要么全是电话订到的,要么全是窗口买到的。

2.如果按座位号随机预分的话,那怎么解释买连票。

3.如果按车次预分的话,那有些车次在12306上面根本不会被查询出来。

4.每个窗口分到的票都是预先分的,这个更加不成立,曾经售票员告诉我:只剩2张,快点买
0 请登录后投票
   发表时间:2012-01-17  
情已逝 写道
sslaowan 写道
情已逝 写道

先确定瓶颈在哪里再说?

我觉得窗口,电话和12306最终都会到一个集中式系统处理,不然他们如何做到一致?这个系统才是瓶颈所在。等铁道部把这个系统升级再谈架构。

单从12306下手没太大意义,CPU和内存都上去了,总线速度跟不上去,能有性能提升吗。

铁路内部有个售票系统,应该是它来把票扔给网站,电话和窗口,从我了解的情况,每个窗口分到的票都是预先分的,所以对它的整体架构没啥影响,晚上做个批处理就ok了,然后把余票第二天再重新分配一下也可以了


不太可能是你说的这种分配方式。

1.如果按车厢预分的话,同一节车厢要么全是电话订到的,要么全是窗口买到的。

2.如果按座位号随机预分的话,那怎么解释买连票。

3.如果按车次预分的话,那有些车次在12306上面根本不会被查询出来。

4.每个窗口分到的票都是预先分的,这个更加不成立,曾经售票员告诉我:只剩2张,快点买


呵呵,你不信可以。你有过在一个售票点没有票,然后另一个售票点还有票的经历吗?
你可以自己去调研一下
0 请登录后投票
   发表时间:2012-01-17  
advantech 写道
我认为12306的系统可以说是海里事务,但是高速处理根本就谈不上。
首先票在哪里就是个问题,如果票在以前的售票系统里,那每次售票都需要和以前的售票系统做数据交换,那就不可能被认为是一个瞬时动作,也就谈不上高速。
其次付款的时候要和各家银行的网银做数据交换,这也不是一个瞬时完成的动作。

网上有种说法是说12306直接调用了TMIS的API,但是我觉得可能性很小,一是安全角度,二是性能问题。
http://www.mmbest.com/a/news/It/2012/0106/4583.html
另外跟银行的交换其实也不是像你想象的那样,各个银行的支付转账中间都是有网关,比如银联之类的,自己的银行也有多级的那种网关,你支付了也只是发送了消息。有人有这样的经历,转账时,手续费扣掉了,钱打过去了,那么没收到,过两天钱又回来了,其实就是在网关被挡回来了。电信也是用类似的机制。消息中间件+异步,比较常用的解决方案
0 请登录后投票
   发表时间:2012-01-17  
sslaowan 写道

呵呵,你不信可以。你有过在一个售票点没有票,然后另一个售票点还有票的经历吗?
你可以自己去调研一下


那是以前代售点可能会出现这情况,他们跟铁道部关系怎么搞不太清楚,据说现在代售点也没这事了。

火车站窗口没这情况
0 请登录后投票
   发表时间:2012-01-17  
情已逝 写道
sslaowan 写道

呵呵,你不信可以。你有过在一个售票点没有票,然后另一个售票点还有票的经历吗?
你可以自己去调研一下


那是以前代售点可能会出现这情况,他们跟铁道部关系怎么搞不太清楚,据说现在代售点也没这事了。

火车站窗口没这情况


反正票余量这个事情是各种问题的,前面有人回复提到了铁道部的分票规则,你可以看一下
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics