先声明, 不清楚目前系统的问题. 只看了两眼讨论.
我觉得, 从THINK OUT OF BOX 角度来说, 火车订票不一定需要跟飞机定票一样的下单
出票. 做几个假设.
1. 假设运力小于需求量.
在这个前提下, 火车出票还需要做到尽可能地把每辆车塞满. 因此, 它还是个座位优化
问题. 我坐高铁注意到这个问题. 起发站坐满了. 中间人下去了, 很长时间内空着, 到
了个大站又上满了.
2. 火车可以有一定数量的站票. 这跟飞机不一样. 事实上, 飞机定票在高峰期一般也
是略微过订的, 否则也不会有在机场喇叭广播谁愿意晚一班, 白给200元的事情了.
3. 春运的人, 一般时间上有弹性. 早一天, 晚一天, 只要不过了大年三十, 很多人不
在乎. 同样, 是早上十点, 还是下午两点的火车, 大多数人不在乎.
4. 春运期间, 可以临时加火车.
我觉得一种可行的办法是:
1. 每天12小时让旅客下单. 当场不出票, 第二天出. 这样, 只有前台有压力, 后台只
需要记录需求, 不需要加锁查看资源.
2. 每个旅客只能下两单, 春节前一单, 之后一单. 多下的单自动被取消. (或者让旅客
自己选择取消).
3. 旅客需要给出时间选择. 必须当天的加10%车费, 灵活的不加. 必须某车次的加10%
车费, 灵活的不加. 假设有10,000个车站, 那么总共有1亿种可能的旅行请求. 这个可
以事先预处理, 对每种请求给出三到五种选择, 让旅客选择排序.
4. 当每天的所有单都下完后, MAP REDUCE 查看每车次每站的需求. 然后根据现有车票
情况进行优化调整. 每车次可以上浮2% 的站票. 如果某车段严重超载, 可以考虑加一
车次.
5. 第二天统一对前一天请求出票.