前两天12306又奔溃了,看了网上很多程序员说12306的余票算法太复杂,提高并发量很难,所有就有了些想法。
一、12306的库存是以票为单位的(猜测),每卖出一张票就要更新该票对应车次的所有乘车区间的余票计算 可以以每两个车站间的席位作为库存,一个车次有多少站台就有多少个队列,每个站台队列保存所有席位,然后每卖出一张票后就把该票对应的全部站台的该席位去掉。查询余票的时候直接查询所查区间的最短队列长度,这样余票计算的复杂度就降下来了。
二、据说目前12306的查询交易占比超过90%,那么可以将结果缓存,卖完票后再异步更新余票信息。
三、增加购物车功能,提前下单,到点购票