海子铁路网

 找回密码
 注册进站

QQ登录

只需一步,快速开始

查看: 14853|回复: 48

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

[复制链接]
发表于 2015-1-6 22:46:50 | 显示全部楼层 |阅读模式
本人软件工程专业,虽然未从事本专业工作,但对编程也算了解,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                -

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

个人愚见,欢迎探讨


 楼主| 发表于 2015-1-6 22:50:25 | 显示全部楼层
补充下,按照此模式售票,硬卧的席位应该细化改成 硬卧上、硬卧中、硬卧下
发表于 2015-1-6 22:50:42 | 显示全部楼层
不明觉厉!
发表于 2015-1-6 23:24:51 | 显示全部楼层
没仔细看,不过光硬卧这样就觉得不可行
发表于 2015-1-7 00:22:10 | 显示全部楼层
看不懂。如果选座另外收费也不错。
发表于 2015-1-7 06:39:43 | 显示全部楼层
是可以的,而且要解决12306的问题就必须改变售票模式
发表于 2015-1-7 07:09:20 | 显示全部楼层
七七八八 发表于 2015-1-7 00:22
看不懂。如果选座另外收费也不错。

把售票和选座位分开,售票时只确认有座位,售票以后只有有票的人选具体座位,从而减轻服务器在售票时的压力,避免拥堵。
发表于 2015-1-7 08:40:16 | 显示全部楼层
jsmbc980401 发表于 2015-1-7 07:16
你考虑过这些等着分配座号的临时订单的数据量有多大么?储存这些数据又需要多少开销呢?把这些数据写到临时 ...

我不这么认为, 减轻售票服务器压力. 由别的服务器承担.  
最主要  临行前再确认,可以避免 最近欠扁的事情出现,  深得又被媒体抨击
 楼主| 发表于 2015-1-7 09:08:32 | 显示全部楼层
jsmbc980401 发表于 2015-1-7 07:16
你考虑过这些等着分配座号的临时订单的数据量有多大么?储存这些数据又需要多少开销呢?把这些数据写到临时 ...

我个人觉得就算这些临时订单按照当前模式是直接到正式订单的,这些订单数据依然是要在数据库中存储,只是一个订单状态问题,所以这个不是问题。前段时间看过一篇关于12306服务器压力的问题,说道分布式多服务器这种模式不适用铁路售票,淘宝的集中抢购他们可以讲不同的店铺分到多台服务器上去处理,但铁路售票不行,涉及的席位复用等多种问题必须要集中处理,所以我就想是否能把分配座位这种资源让出来,横向不能切割,我们就纵向切割,从而达到分布式处理的目的。再者,我觉得12306的处理资源远比存储资源珍贵的多,,,,
发表于 2015-1-7 09:08:35 | 显示全部楼层
huangyang 发表于 2015-1-7 08:40
我不这么认为, 减轻售票服务器压力. 由别的服务器承担.  
最主要  临行前再确认,可以避免 最近欠扁的事情 ...

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

我觉得如果选票不加点钱,铁总没理由办这个事
 楼主| 发表于 2015-1-7 09:09:29 | 显示全部楼层
新曙光 发表于 2015-1-6 23:24
没仔细看,不过光硬卧这样就觉得不可行

硬卧后面我有补充,需要分成上中下分开处理,这样也好,可以选择需要的席位
 楼主| 发表于 2015-1-7 09:13:00 | 显示全部楼层
七七八八 发表于 2015-1-7 00:22
看不懂。如果选座另外收费也不错。

别学廉航那套,出来后媒体肯定会骂上几个月
发表于 2015-1-7 09:16:09 | 显示全部楼层
去年12月31日,上午下午民航内部系统各瘫痪一次,本人定好了座位,至今无法付费
发表于 2015-1-7 09:18:33 | 显示全部楼层
peterpu 发表于 2015-1-7 09:16
去年12月31日,上午下午民航内部系统各瘫痪一次,本人定好了座位,至今无法付费

peter兄坐飞机了!!!!
 楼主| 发表于 2015-1-7 09:21:27 | 显示全部楼层
上局新长段 发表于 2015-1-7 09:08
那这样就要增加选票服务器了,而人工售票窗口的机器也要先连售票服务器,再连选票服务器,确实是烦了。
...

未来更多人会使用网络、电话订票了,其实现在售票窗口很大的一部分工作已经转换为取票工作,再者,其实售票终端可以还和以前一样,只是后台处理去到两个两个地方,这个是可以用软件来处理的
 楼主| 发表于 2015-1-7 09:24:18 | 显示全部楼层
peterpu 发表于 2015-1-7 09:16
去年12月31日,上午下午民航内部系统各瘫痪一次,本人定好了座位,至今无法付费

偶发事件不能阻碍时代的进步
发表于 2015-1-7 09:54:04 来自手机 | 显示全部楼层
12306可不可以分布式?可以,按车次分布,保证同一车次同一席别在同一台服务器上,预先做好客流分析,确保合理分布。。
如何减轻既有系统压力?12306和既有系统在预售期第一天分网即可。
如何控制车票销售?每个席位三个bit_mask控制:可用车站 起点限售站 终点限售站,通过位运算,以最快速度完成核心计算和分票,其他计算都可以通过外围服务器实现。。。
发表于 2015-1-7 10:03:40 | 显示全部楼层
54whao 发表于 2015-1-7 09:54
12306可不可以分布式?可以,按车次分布,保证同一车次同一席别在同一台服务器上,预先做好客流分析,确保合 ...

同一车次在同一台服务器上,那么用户在输入始末站后,需要访问多少服务器才能取得所有车次的余票信息?系统的负载一点没有减少
发表于 2015-1-7 10:13:30 | 显示全部楼层
augusdo 发表于 2015-1-7 09:18
peter兄坐飞机了!!!!

谢谢你讲出了偶要讲的话。
发表于 2015-1-7 10:35:29 | 显示全部楼层

嗯 到时候车上只有1000个座位 却卖了1100张票 剩下100个人告诉你不好意思 超售了!
您需要登录后才可以回帖 登录 | 注册进站

本版积分规则

手机版|小黑屋|Archiver|海子铁路网 ( 京ICP证120035号 )京公网安备11010702001036

GMT+8, 2025-5-14 13:02

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表