super0315 发表于 2015-1-6 22:46:50

今天突然想,12306售票模式是否可以比照机票的售票模式,以减少服务器分配座位的压力

本人软件工程专业,虽然未从事本专业工作,但对编程也算了解,12306服务器在分配座位上应该需要占用不少资源。今天突然想到,是否可以借鉴机票的销售模式,在售票阶段让出分配座位的服务器资源,用于售票,从而提高售票效率。算法可以是这样:
假设X次列车由A站开往D站,经停B、C站,全程席位共用,共用硬座500张,硬卧300张
数据库数据为:
车次 席位票额始发以近站始发以远站 终到以近站终到以远站
X    硬座500   -               -            -                -
X    硬卧300   -               -            -                -

当Z旅客购买了一张A~B的硬座车票后,数据库变化为:
车次 席位票额始发以近站始发以远站 终到以近站终到以远站
X    硬座499   -               -            -                -
X    硬卧300   -               -            -                -
X    硬座1      -               B            -                -

当Y旅客购买了一张C~D的硬座车票后,数据库变化为:
车次 席位票额始发以近站始发以远站 终到以近站终到以远站
X    硬座499   -               -            -                -
X    硬卧300   -               -            -                -
X    硬座0      -               B            -                -
X    硬座1      -               B            C                -

...以此类推
系统最终做的操作就只是加减算法,席位复用时会做新增记录操作
旅客购票成功后可以在车站人工窗口或自助终端、网站进行选座操作,这样便可在不增加售票服务器负担的情况下提供给旅客选座功能,而且选座的同时性会远比售票同时性低好几个数量级

个人愚见,欢迎探讨


super0315 发表于 2015-1-6 22:50:25

补充下,按照此模式售票,硬卧的席位应该细化改成 硬卧上、硬卧中、硬卧下

s6184055 发表于 2015-1-6 22:50:42

不明觉厉!

新曙光 发表于 2015-1-6 23:24:51

没仔细看,不过光硬卧这样就觉得不可行

七七八八 发表于 2015-1-7 00:22:10

看不懂。如果选座另外收费也不错。{:4_92:}

dinus 发表于 2015-1-7 06:39:43

是可以的,而且要解决12306的问题就必须改变售票模式

nofifa 发表于 2015-1-7 07:09:20

七七八八 发表于 2015-1-7 00:22 static/image/common/back.gif
看不懂。如果选座另外收费也不错。

把售票和选座位分开,售票时只确认有座位,售票以后只有有票的人选具体座位,从而减轻服务器在售票时的压力,避免拥堵。

huangyang 发表于 2015-1-7 08:40:16

jsmbc980401 发表于 2015-1-7 07:16 static/image/common/back.gif
你考虑过这些等着分配座号的临时订单的数据量有多大么?储存这些数据又需要多少开销呢?把这些数据写到临时 ...

我不这么认为, 减轻售票服务器压力. 由别的服务器承担.
最主要临行前再确认,可以避免 最近欠扁的事情出现,深得又被媒体抨击

super0315 发表于 2015-1-7 09:08:32

jsmbc980401 发表于 2015-1-7 07:16 static/image/common/back.gif
你考虑过这些等着分配座号的临时订单的数据量有多大么?储存这些数据又需要多少开销呢?把这些数据写到临时 ...

我个人觉得就算这些临时订单按照当前模式是直接到正式订单的,这些订单数据依然是要在数据库中存储,只是一个订单状态问题,所以这个不是问题。前段时间看过一篇关于12306服务器压力的问题,说道分布式多服务器这种模式不适用铁路售票,淘宝的集中抢购他们可以讲不同的店铺分到多台服务器上去处理,但铁路售票不行,涉及的席位复用等多种问题必须要集中处理,所以我就想是否能把分配座位这种资源让出来,横向不能切割,我们就纵向切割,从而达到分布式处理的目的。再者,我觉得12306的处理资源远比存储资源珍贵的多,,,,

上局新长段 发表于 2015-1-7 09:08:35

huangyang 发表于 2015-1-7 08:40 static/image/common/back.gif
我不这么认为, 减轻售票服务器压力. 由别的服务器承担.
最主要临行前再确认,可以避免 最近欠扁的事情 ...

那这样就要增加选票服务器了,而人工售票窗口的机器也要先连售票服务器,再连选票服务器,确实是烦了。

我觉得如果选票不加点钱,铁总没理由办这个事

super0315 发表于 2015-1-7 09:09:29

新曙光 发表于 2015-1-6 23:24 static/image/common/back.gif
没仔细看,不过光硬卧这样就觉得不可行

硬卧后面我有补充,需要分成上中下分开处理,这样也好,可以选择需要的席位

super0315 发表于 2015-1-7 09:13:00

七七八八 发表于 2015-1-7 00:22 static/image/common/back.gif
看不懂。如果选座另外收费也不错。

别学廉航那套,出来后媒体肯定会骂上几个月

peterpu 发表于 2015-1-7 09:16:09

去年12月31日,上午下午民航内部系统各瘫痪一次,本人定好了座位,至今无法付费

augusdo 发表于 2015-1-7 09:18:33

peterpu 发表于 2015-1-7 09:16 static/image/common/back.gif
去年12月31日,上午下午民航内部系统各瘫痪一次,本人定好了座位,至今无法付费

peter兄坐飞机了!!!!

super0315 发表于 2015-1-7 09:21:27

上局新长段 发表于 2015-1-7 09:08 static/image/common/back.gif
那这样就要增加选票服务器了,而人工售票窗口的机器也要先连售票服务器,再连选票服务器,确实是烦了。
...

未来更多人会使用网络、电话订票了,其实现在售票窗口很大的一部分工作已经转换为取票工作,再者,其实售票终端可以还和以前一样,只是后台处理去到两个两个地方,这个是可以用软件来处理的

super0315 发表于 2015-1-7 09:24:18

peterpu 发表于 2015-1-7 09:16 static/image/common/back.gif
去年12月31日,上午下午民航内部系统各瘫痪一次,本人定好了座位,至今无法付费

偶发事件不能阻碍时代的进步{:4_104:}

54whao 发表于 2015-1-7 09:54:04

12306可不可以分布式?可以,按车次分布,保证同一车次同一席别在同一台服务器上,预先做好客流分析,确保合理分布。。
如何减轻既有系统压力?12306和既有系统在预售期第一天分网即可。
如何控制车票销售?每个席位三个bit_mask控制:可用车站 起点限售站 终点限售站,通过位运算,以最快速度完成核心计算和分票,其他计算都可以通过外围服务器实现。。。

jetfiner 发表于 2015-1-7 10:03:40

54whao 发表于 2015-1-7 09:54 static/image/common/back.gif
12306可不可以分布式?可以,按车次分布,保证同一车次同一席别在同一台服务器上,预先做好客流分析,确保合 ...

同一车次在同一台服务器上,那么用户在输入始末站后,需要访问多少服务器才能取得所有车次的余票信息?系统的负载一点没有减少

baggiop 发表于 2015-1-7 10:13:30

augusdo 发表于 2015-1-7 09:18 static/image/common/back.gif
peter兄坐飞机了!!!!

谢谢你讲出了偶要讲的话。{:4_104:}

Watier 发表于 2015-1-7 10:35:29


嗯 到时候车上只有1000个座位 却卖了1100张票 剩下100个人告诉你不好意思 超售了!
页: [1] 2 3
查看完整版本: 今天突然想,12306售票模式是否可以比照机票的售票模式,以减少服务器分配座位的压力