0
点赞
收藏
分享

微信扫一扫

带你分析 12306 系统设计

1 业务复杂度高于淘宝

1.1 动态库存

上海-南京-北京:

  • 买上海-北京,就是一张票
  • 买上海-南京,南京-北京,就是两张票

1.2 选座功能

下完单还能选座位

1.3 线上+线下

淘宝只能线上。

1.4 不停刷票

即使没票了,还是会被刷。持续高并发业务,需要更综合的高并发设计。

1.5 杜绝超卖

2 业务量

  • 2020年高峰期:一天的请求量大概1600亿,平均180万/s
  • 平均一年售出30亿张,高峰期日售票能力达到了2000万张
  • 高峰期1秒可卖出1300张票。淘宝双11: 58万笔/秒

3 解决系统忙

3.1 提高处理能力: QPS和TPS

  • 堆积硬件
  • 软件:Gemfire 商业软件分布式内存数据库
  • 算法:模型、逻辑

3.2 削峰

  • 业务:验证码、分时段、排队(反正最后能买到就行,我等得起)
  • 技术:限流、异步

4 模型设计+逻辑实现

4.1 余票查询

记录站站余票。一列火车有5个站,可拆分成4+3+2+1=10条站站记录。

将卖票变成01二进制数的计算

4.2 座位购买

记录座位销售详情。

一列火车有5个站A~E,1号座位: 0111(参照 4.1 最后的销售详情值),代表只剩A~B可买。

上面两步要保证事务性。

举报

相关推荐

0 条评论