需求分析—高并发场景微服务实战(二)
2023-06-13 09:14:06 时间
在《 高并发场景微服务实战(一)》一文中,我提到决定以一个虚拟的高并发场景的微服务系统为主线,系统性从 0 到 1 的创造一个高并发场景的微服务系统。这个高并发业务场景是——订票系统机票秒杀。
下面我会详细说一下自己为什么选择这个业务场景作为需求原型,并记录下我分析需求和梳理业务流程的过程。
在公司需求分析工作大多数情况是由PO(产品经理)完成的,我虽然偶尔会提出一些建议,但缺少需求分析的专业知识,所以可能会有许多错误,见笑了。
为什么要选取“机票秒杀业务”作为需求原型呢?
这里我主要有以下几个考量:
- 业务场景很典型,熟知度比较高,业务理解上不存在很大的障碍。
- 能将我所要表达的微服务特性和高并发特性融入进去。
- 业务复杂度比较低,便于上手开发,因为门槛太高反而不利于技术实践,需要花大量的时间去写业务。
原始需求
很多人应该都用过去哪儿,携程之类的软件购买机票。这类APP会把所有航空公司的航班、票价等信息都获取到,然后再聚合。 本次我就是以这个场景为业务原型开展,业务需求经过简化相对实际业务来说非常简单。简化业务的原因是因为不想花太多时间在业务逻辑上面,通过这次实践能掌握到微服务技术栈和高并发技术栈即可。
原始需求描述如下:
- 用户可以通过订票系统可以同时获取多家航空公司的航班信息。
- 用过可以通过订票系统购买指定航空公司机票。
- 在订票系统后台可以看到用户的支付流水,订单信息。
需求分析
依据原始需求,整合分析后可归集为以下业务模块:
- 用户。用户信息(主要是姓名、余额),航公公司机票信息(主要是公司名、航班号、航班信息、价格、机票数量)。
- 机票资源。用户购买机票后,航空公司机票库存扣减,订票系统实时显示航空公司实最新机票信息。
- 计费。用户成功购买机票后收费。
- 财务。机票购买的支付流水,收入统计。
- 消息。机票支付消息。
用户故事、任务整理
以上述需求归集情况,罗列几个代表性的用户故事,取代传统的需求文档。
- 作为一个普通用户。我希望可以快速查询到,指定出发时间内所有航空公司的机票信息,以便于购买最划算的机票。
- 作为一个订票系统用户。我希望可以快速查询到所有航空公司的航班信息,并聚合展示给用户。
- 作为一个订票系统用户。我希望可以代用户向航空公司购买机票,看到用户支付流水和订单信息。
- 作为一个航公公司用户。我希望可以看到机票的销售情况,用户的支付流水。
下面基于以上故事,将故事拆解成较细的任务,拿第二个故事举例。
1.1 订票系统接收用户传入的查询信息,例如 2022/10/1 18:00 深圳飞往三亚
1.2 订票系统把所有航空公司的航班、票价等信息都获取到
1.3 将机票信息聚合,展示给用户
关键业务流程梳理
基于需求情况,找出核心的业务流程,指导后期的核心业务开发。
留个问题
你会用什么方式获取和聚合机票信息?
站在巨人的肩膀上:
- 码闻强—SpringCloud微服务实战
- 徐隆曦—Java并发编程78讲
相关文章
- #数据集#:并发脑电图、心电图和多剂量经颅电刺激行为的数据集
- 使用LoadRunner进行并发测试、压力测试和负载测试
- 高并发服务优化篇:从RPC预热转发看服务端性能调优
- 高并发服务优化篇:一图详解1.7HashMap死循环的产生
- 高并发服务优化篇:JVM--工程师进阶的必经之路
- java并发编程实战_java解决并发问题
- 并发控制--悲观锁和乐观锁详解
- 高并发场景微服务实战(一)
- 千亿流量并发治理!Alibaba实战Sentinel笔记,为微服务保驾护航
- SpringCloud微服务架构实战:高并发微服务架构设计
- Go语言圣经–示例: 并发的Clock服务习题详解编程语言
- MySQL配置优化—并发连接数设置(mysql的并发连接数)
- 如何检测和优化MySQL并发连接数(查看mysql并发数)
- 性能MySQL 1万并发性能提升:实现服务的卓越性能(mysql1万并发)
- Mssql优化实现高并发设计之道(Mssql 高并发设计)
- “Redis应对高并发访问量的秘诀,让你的系统快速处理海量访问!”(redis并发访问量)
- 建站技术秒杀用Redis实现高并发(秒杀用redis做)
- 使用Redis实现高效安全的下订单功能(下订单 redis并发锁)
- 如何保证Redis高性能的高并发访问(如何保证redis高并发)
- 深入浅出Oracle中的使用并发(oracle 使用并发)
- Redis突然高并发调试怎么防止链接泄漏(redis高并发链接泄露)
- Redis实现高并发扣费确保流畅服务(redis高并发扣费)
- Redis实现高并发操作的原子性(redis高并发 原子性)
- 探讨Redis锁一种解决并发问题的新思路(redis锁的概念)
- Redis助力解决单接口高并发问题(redis解决单接口并发)
- 控制Oracle 11G 提升并发控制能力(oracle11G 并发)