需求分析—高并发场景微服务实战(二)

简介: 在《 高并发场景微服务实战(一)》一文中,我提到决定以一个虚拟的高并发场景的微服务系统为主线,系统性从 0 到 1 的创造一个高并发场景的微服务系统。这个高并发业务场景是——订票系统机票秒杀。

在《 高并发场景微服务实战(一)》一文中,我提到决定以一个虚拟的高并发场景的微服务系统为主线,系统性从 0 到 1 的创造一个高并发场景的微服务系统。这个高并发业务场景是——订票系统机票秒杀。

下面我会详细说一下自己为什么选择这个业务场景作为需求原型,并记录下我分析需求和梳理业务流程的过程。

在公司需求分析工作大多数情况是由PO(产品经理)完成的,我虽然偶尔会提出一些建议,但缺少需求分析的专业知识,所以可能会有许多错误,见笑了。

为什么要选取“机票秒杀业务”作为需求原型呢?

这里我主要有以下几个考量:

  1. 业务场景很典型,熟知度比较高,业务理解上不存在很大的障碍。
  2. 能将我所要表达的微服务特性和高并发特性融入进去。
  3. 业务复杂度比较低,便于上手开发,因为门槛太高反而不利于技术实践,需要花大量的时间去写业务。

原始需求

很多人应该都用过去哪儿,携程之类的软件购买机票。这类APP会把所有航空公司的航班、票价等信息都获取到,然后再聚合。 本次我就是以这个场景为业务原型开展,业务需求经过简化相对实际业务来说非常简单。简化业务的原因是因为不想花太多时间在业务逻辑上面,通过这次实践能掌握到微服务技术栈和高并发技术栈即可。

原始需求描述如下:

  • 用户可以通过订票系统可以同时获取多家航空公司的航班信息。
  • 用过可以通过订票系统购买指定航空公司机票。
  • 在订票系统后台可以看到用户的支付流水,订单信息。

需求分析

依据原始需求,整合分析后可归集为以下业务模块:

  • 用户。用户信息(主要是姓名、余额),航公公司机票信息(主要是公司名、航班号、航班信息、价格、机票数量)。
  • 机票资源。用户购买机票后,航空公司机票库存扣减,订票系统实时显示航空公司实最新机票信息。
  • 计费。用户成功购买机票后收费。
  • 财务。机票购买的支付流水,收入统计。
  • 消息。机票支付消息。

用户故事、任务整理

以上述需求归集情况,罗列几个代表性的用户故事,取代传统的需求文档。

  • 作为一个普通用户。我希望可以快速查询到,指定出发时间内所有航空公司的机票信息,以便于购买最划算的机票。
  • 作为一个订票系统用户。我希望可以快速查询到所有航空公司的航班信息,并聚合展示给用户。
  • 作为一个订票系统用户。我希望可以代用户向航空公司购买机票,看到用户支付流水和订单信息。
  • 作为一个航公公司用户。我希望可以看到机票的销售情况,用户的支付流水。

下面基于以上故事,将故事拆解成较细的任务,拿第二个故事举例。

1.1 订票系统接收用户传入的查询信息,例如 2022/10/1 18:00  深圳飞往三亚

1.2 订票系统把所有航空公司的航班、票价等信息都获取到

1.3 将机票信息聚合,展示给用户

关键业务流程梳理

基于需求情况,找出核心的业务流程,指导后期的核心业务开发。

留个问题

你会用什么方式获取和聚合机票信息?

站在巨人的肩膀上:

  • 码闻强—SpringCloud微服务实战
  • 徐隆曦—Java并发编程78讲
相关文章
|
6月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1079 3
|
4月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
4月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
Spring Boot 3.x 微服务架构实战指南
|
8月前
|
缓存 负载均衡 监控
微服务架构下的电商API接口设计:策略、方法与实战案例
本文探讨了微服务架构下的电商API接口设计,旨在打造高效、灵活与可扩展的电商系统。通过服务拆分(如商品、订单、支付等模块)和标准化设计(RESTful或GraphQL风格),确保接口一致性与易用性。同时,采用缓存策略、负载均衡及限流技术优化性能,并借助Prometheus等工具实现监控与日志管理。微服务架构的优势在于支持敏捷开发、高并发处理和独立部署,满足电商业务快速迭代需求。未来,电商API设计将向智能化与安全化方向发展。
508 102
|
6月前
|
负载均衡 监控 Java
微服务稳定性三板斧:熔断、限流与负载均衡全面解析(附 Hystrix-Go 实战代码)
在微服务架构中,高可用与稳定性至关重要。本文详解熔断、限流与负载均衡三大关键技术,结合API网关与Hystrix-Go实战,帮助构建健壮、弹性的微服务系统。
682 1
微服务稳定性三板斧:熔断、限流与负载均衡全面解析(附 Hystrix-Go 实战代码)
|
11月前
|
NoSQL MongoDB 微服务
微服务——MongoDB实战演练——文章评论的基本增删改查
本节介绍了文章评论的基本增删改查功能实现。首先,在`cn.itcast.article.dao`包下创建数据访问接口`CommentRepository`,继承`MongoRepository`以支持MongoDB操作。接着,在`cn.itcast.article.service`包下创建业务逻辑类`CommentService`,通过注入`CommentRepository`实现保存、更新、删除及查询评论的功能。最后,新建Junit测试类`CommentServiceTest`,对保存和查询功能进行测试,并展示测试结果截图,验证功能的正确性。
263 2
|
11月前
|
NoSQL Java MongoDB
微服务——MongoDB实战演练——文章评论实体类的编写
本节主要介绍文章评论实体类的编写,创建了包`cn.itcast.article.po`用于存放实体类。具体实现中,`Comment`类通过`@Document`注解映射到MongoDB的`comment`集合,包含主键、内容、发布时间、用户ID、昵称等属性,并通过`@Indexed`和`@CompoundIndex`注解添加单字段及复合索引,以提升查询效率。同时提供了Mongo命令示例,便于理解和操作。
194 2
|
11月前
|
NoSQL 测试技术 MongoDB
微服务——MongoDB实战演练——MongoTemplate实现评论点赞
本节介绍如何使用MongoTemplate实现评论点赞功能。传统方法通过查询整个文档并更新所有字段,效率较低。为优化性能,采用MongoTemplate对特定字段直接操作。代码中展示了如何利用`Query`和`Update`对象构建更新逻辑,通过`update.inc("likenum")`实现点赞数递增。测试用例验证了功能的正确性,确保点赞数成功加1。
249 0
|
11月前
|
NoSQL 测试技术 MongoDB
微服务——MongoDB实战演练——根据上级ID查询文章评论的分页列表
本节介绍如何根据上级ID查询文章评论的分页列表,主要包括以下内容:(1)在CommentRepository中新增`findByParentid`方法,用于按父ID查询子评论分页列表;(2)在CommentService中新增`findCommentListPageByParentid`方法,封装分页逻辑;(3)提供JUnit测试用例,验证功能正确性;(4)使用Compass插入测试数据并执行测试,展示查询结果。通过这些步骤,实现对评论的高效分页查询。
200 0
|
8月前
|
缓存 监控 Cloud Native
Java Solon v3.2.0 高并发与低内存实战指南之解决方案优化
本文深入解析了Java Solon v3.2.0框架的实战应用,聚焦高并发与低内存消耗场景。通过响应式编程、云原生支持、内存优化等特性,结合API网关、数据库操作及分布式缓存实例,展示其在秒杀系统中的性能优势。文章还提供了Docker部署、监控方案及实际效果数据,助力开发者构建高效稳定的应用系统。代码示例详尽,适合希望提升系统性能的Java开发者参考。
447 4
Java Solon v3.2.0 高并发与低内存实战指南之解决方案优化