论坛首页 Java企业应用论坛

批判下最近关于12306架构方案的“排队思路”

浏览 32688 次
精华帖 (6) :: 良好帖 (5) :: 新手帖 (0) :: 隐藏帖 (15)
作者 正文
   发表时间:2012-01-13   最后修改:2012-01-13
这贴不需要从技术上驳斥排队如何不好,只需要从业务上来说明下就知道排队算法行不通了。

排队算法的原型是火车站售票厅的排队买票。

而网上购票的排队,有两种方案选择,一是用户先选好从哪里到哪里的票,再排队。二是先排队,排到你了再选要从哪到哪里。

第一种,你可以想象下这种情景。售票厅为了加快速度,要求所有人排队前先领个小票,上面写着从哪到哪,如果排到你的时候没你写的票了,就不能买了,你要回去重新领个小票重选车次和首末站,然后必然得回到队尾重排,不回到队尾的话否则你选站会妨碍后面排队的人,导致领小票再排队失去意义。
那买票的人能不造反吗?他选票时有票的,排到他时没了,得一次次重选重排,还不如现在售票厅的卖法有效率呢!

第二种,先排,排到再选票,好了,售票厅有熟练的售票员引导你,你两三分钟能买好,而网站,你给多少时间选票呢?一个旅客要先搜出想要的票的即时信息,可能没有,再搜下一趟,再搜转车方案。注意提前搜好是没多大意义的,因为票信息很快过时,只有排到你时搜出来的才有现实意义,只能排到再搜。那一个人也得给他三分钟以上来选好票下单,甚至因为很多人不熟悉操作,得给更长时间。
如果这队伍前进得比火车售票厅还慢,而网上排队的人又必然比售票厅还多,那这队你排一天都未必轮得到你,还不可能每个人都坐在电脑前死等,网站排队变成了笑柄。

以上就是我对排队方案的反对意见,谁有针对以上两个问题的解决方案放上来讨论下吧。
   发表时间:2012-01-13  
又不是一次只能一个人进去选票吗,
又不是所有的人都要选很久。

从实际看来车票基本上出来就在半个小时基本卖完了,也就是说最多排半个小时就轮到了。
其实能在半个小时内把车票卖完说明12306的负载基本满足需求
0 请登录后投票
   发表时间:2012-01-13   最后修改:2012-01-13
情已逝 写道
又不是一次只能一个人进去选票吗,
又不是所有的人都要选很久。

从实际看来车票基本上出来就在半个小时基本卖完了,也就是说最多排半个小时就轮到了。
其实能在半个小时内把车票卖完说明12306的负载基本满足需求


请结合我所说的两种情景来实际讨论,你这样回复跟“淘宝那么高的并发都能卖,12306为什么不能”性质差不多,实际绕开了卖票的场景。
你的思路是,如果全国的售票窗口增加3倍,那10分钟就能卖完?增加10倍,3分钟就能结束卖票?
0 请登录后投票
   发表时间:2012-01-13  
第一条,排到一半没票了谁说就要重新领小票?你可以继续排到窗口去问别的车,就算是真在车站买票你排到一半没票了那也只能认了不是吗?
第二条,排到之后还有票,给你30分钟去操作,如果系统不卡的话30分钟之内还下不了单那请您还是电话购票或者现场买票吧,本网站不是为您准备的
0 请登录后投票
   发表时间:2012-01-13  
ahyyxx222 写道
情已逝 写道
又不是一次只能一个人进去选票吗,
又不是所有的人都要选很久。

从实际看来车票基本上出来就在半个小时基本卖完了,也就是说最多排半个小时就轮到了。
其实能在半个小时内把车票卖完说明12306的负载基本满足需求


请结合我所说的两种情景来实际讨论,你这样回复跟“淘宝那么高的并发都能卖,12306为什么不能”性质差不多,实际绕开了卖票的场景。
你的思路是,如果全国的售票窗口增加3倍,那10分钟就能卖完?增加10倍,3分钟就能结束卖票?



一年就那么几天,铁路系统为什么需要淘宝那么高的并发?
0 请登录后投票
   发表时间:2012-01-13  
淘宝是淘宝,火车票是火车票,设计难道不针对业务来么?
0 请登录后投票
   发表时间:2012-01-13  
对于火车票来说,用户等上一段时间是可以接受的
0 请登录后投票
   发表时间:2012-01-13  
yanyilin224 写道
第一条,排到一半没票了谁说就要重新领小票?你可以继续排到窗口去问别的车,就算是真在车站买票你排到一半没票了那也只能认了不是吗?
第二条,排到之后还有票,给你30分钟去操作,如果系统不卡的话30分钟之内还下不了单那请您还是电话购票或者现场买票吧,本网站不是为您准备的


1.人多票少,没票就是没票,这个不是你的系统能解决的

2.限制了进入购票系统的用户数,还会卡么?
0 请登录后投票
   发表时间:2012-01-13   最后修改:2012-01-13
yanyilin224 写道
第一条,排到一半没票了谁说就要重新领小票?你可以继续排到窗口去问别的车,就算是真在车站买票你排到一半没票了那也只能认了不是吗?
第二条,排到之后还有票,给你30分钟去操作,如果系统不卡的话30分钟之内还下不了单那请您还是电话购票或者现场买票吧,本网站不是为您准备的


我原贴说了,如果排到窗口再问别的车,领小票就没有意义了,实际就变成了第二种方案。
第二条,你给他30分钟,那排在他后面的人多久才能进来啊?如果不是一个个放,而是批量放,那又回到了争夺思路,这不是我要讨论的。我只是来批判排队方案的
0 请登录后投票
   发表时间:2012-01-13  
ahyyxx222 写道
yanyilin224 写道
第一条,排到一半没票了谁说就要重新领小票?你可以继续排到窗口去问别的车,就算是真在车站买票你排到一半没票了那也只能认了不是吗?
第二条,排到之后还有票,给你30分钟去操作,如果系统不卡的话30分钟之内还下不了单那请您还是电话购票或者现场买票吧,本网站不是为您准备的


我原贴说了,如果排到窗口再问别的车,领小票就没有意义了,实际就变成了第二种方案。
第二条,你给他30分钟,那排在他后面的人多久才能进来啊?如果不是一个个放,而是批量放,那又回到了争夺思路,这不是我要讨论的。我只是来批判排队方案的


哦,我的方案是先拿号再选票。用户在等待的时候可以查余票,没了可以直接弃号
0 请登录后投票
论坛首页 Java企业应用版

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