抢票系统之架构设计

本文详细分析了抢票系统的架构设计,包括产品需求的梳理,核心业务流程如购票、退款、改签等,并运用DDD方法论进行领域划分。架构设计中强调了服务拆分的重要性,以实现系统的高内聚、低耦合。此外,还特别指出购票业务的复杂性,如库存的不可预见性和车票组合的多样性。
摘要由CSDN通过智能技术生成

抢票系统之架构设计

1.产品需求分析

1.1功能梳理

image-20220321200744172

1.2 需求识别

image-20220321201919512

扩展类需求:不是平台的核心的需求,可能都不是自己实现的,通过本平台进行引流。

功能性需求:真正核心的功能,

非功能性需求:大厂非常重要的一块

1.3业务本质解读

image-20220321203444591

区别于传统的电商系统的一个商品一个SKU,购票的SKU有多种组合,eg:A、B、C、D 四个站就有3+2+1=6种到站组合,3个等级的座位,就会产生18种不同的票面,也就是18SKU。也就是说购票的库存是不可预见的。

核心的业务规则:所有的车票所包含的区间的重叠次数+1,不能超过车次的总座位数,不是说每一个站都要放出所有的票,b-c是大城市可能放的票多

2.核心业务流程分析

2.1 购票且支付

image-20220321204702637

2.2购票未支付

image-20220321212151353

库存和支付有状态流转

2.3 退款

image-20220321212546600

需要处理手续费的处理

2.4 改签

image-20220321213155317

实质是退票+购票

3.DDD方法论

image-20220321214119207

接口层:web浏览器、开放API

服务层:解决方案(购票、改签、退票)

领域层:高内聚、低耦合,不同的领域相互独立

基础层:基础的能力(工具层面)

3.1领域层

image-20220321215835953

4.架构设计

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B5ybcp03-1648128481424)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20220321222050860.png)]

4.2为服务架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OilbQ0lo-1648128481425)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20220321224158264.png)]

好处:把所有的功能都拆解开了,

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值