购买一个行程会涉及多个站点的扣减库存,有可能这些多个站点的库存扣减是放在一个事务中的,如果是在一个事务中,那么一次下单行为,可能要涉及到几十次库存扣减。
对于未公开的技术部分,只能结合已公开的信息,去做大胆的猜想。
本文提到的一些解决方案,并不一定是标准的实现,一些观点旨在引发大家的思考。
12306的成就
- 创下全球最大实时票务交易系统世界记录,春运一个月抵欧洲一年。
- 最高可达百万并发,承受了这个世界上能秒杀任何系统的QPS。
- 网站浏览量一天最高超1500亿次,峰值是双11的三倍。
12306系统特点
- 跟淘宝天猫等相比,业务简单(卖票)。
- 流量极大。
- 动态库存。
12306系统难点
目前 12306 最大的难点,在于库存扣减。
它跟传统的电商网站,可能最大的不同在于它的库存, 它的库存是动态变化的,库存之间会互相影响。
比如现在有一个组合品的需求,A品是由B品和C品通过不同的比例混合而成,用户下单的时候传过来的是A品这个 SKU,但是库存扣减的时候是把它的组合品的单品(B和C),都去扣一遍的。
我们平时各种商品 sku 库存的话,它是