抢了个票,还以为发现了12306的系统BUG
Hollis
共 2613字,需浏览 6分钟
·
2022-01-19 11:13
任何区间段
购票这一个场景,就涉及到了好多的问题,要兼顾不同区间段的旅客数量,分配不同的席位库存。还要考虑到铁路的收入,长行程旅客优先等等(这就是为什么有时候本站出发无票,但往前多买几站就会有票的原因吧)。客票系统架构猜想
TCC
则是一个相对折中且成熟的方案:TCC
过程中要解决的问题:订票业务模型猜想
一次购票行为包含哪些属性
购票时间
、车次
、席位号
、乘车人
、乘客类型
、出发地
、目的地
、出发时间
、到达时间
、行程区间集合
。行程区间集合
中的行程区间
,需要包含区间ID
和 经过该区间的开始结束时间
两个部分。用户购票区间存储设计
用户行程时间区间存储设计
出发时间
加上对应的占用时间段耗时时长,即可。余票库存存储设计
余票和席位绑定设计
1-1-A
则表1车厢-1号-A座
。区间冲突幂等控制
乘车人
、行程区间
两个属性做幂等控制。总结
有道无术,术可成;有术无道,止于术
欢迎大家关注Java之道公众号
好文章,我在看❤️
评论