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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 在《 高并发场景微服务实战(一)》一文中,我提到决定以一个虚拟的高并发场景的微服务系统为主线,系统性从 0 到 1 的创造一个高并发场景的微服务系统。这个高并发业务场景是——订票系统机票秒杀。

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

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

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

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

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

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

原始需求

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

原始需求描述如下:

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

需求分析

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

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

用户故事、任务整理

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

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

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

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

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

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

关键业务流程梳理

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

留个问题

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

站在巨人的肩膀上:

  • 码闻强—SpringCloud微服务实战
  • 徐隆曦—Java并发编程78讲
相关文章
|
24天前
|
消息中间件 人工智能 供应链
go-zero 微服务实战系列(二、服务拆分)
go-zero 微服务实战系列(二、服务拆分)
|
17天前
|
Dubbo Java 应用服务中间件
微服务框架Dubbo环境部署实战
微服务框架Dubbo环境部署的实战指南,涵盖了Dubbo的概述、服务部署、以及Dubbo web管理页面的部署,旨在指导读者如何搭建和使用Dubbo框架。
68 17
微服务框架Dubbo环境部署实战
|
22天前
|
NoSQL 关系型数据库 MySQL
排行榜系统设计:高并发场景下的最佳实践
本文由技术分享者小米带来,详细介绍了如何设计一个高效、稳定且易扩展的排行榜系统。内容涵盖项目背景、技术选型、数据结构设计、基本操作实现、分页显示、持久化与数据恢复,以及高并发下的性能优化策略。通过Redis与MySQL的结合,确保了排行榜的实时性和可靠性。适合对排行榜设计感兴趣的技术人员参考学习。
46 7
排行榜系统设计:高并发场景下的最佳实践
|
3天前
|
缓存 分布式计算 Hadoop
HBase在高并发场景下的性能分析
HBase在高并发场景下的性能受到多方面因素的影响,包括数据模型设计、集群配置、读写策略及性能调优等。合理的设计和配置可以显著提高HBase在高并发环境下的性能。不过,需要注意的是,由于项目和业务需求的不同,性能优化并没有一劳永逸的解决方案,需要根据实际情况进行针对性的调整和优化。
22 8
|
14天前
|
自然语言处理 Java 网络架构
解锁跨平台微服务新纪元:Micronaut与Kotlin联袂打造的多语言兼容服务——代码、教程、实战一次打包奉送!
【9月更文挑战第6天】Micronaut是一款轻量级、高性能的Java框架,适用于微服务开发。它支持Java、Groovy和Kotlin等多种语言,提供灵活的多语言开发环境。本文通过创建一个简单的多语言兼容服务,展示如何使用Micronaut及其注解驱动特性实现REST接口,并引入国际化支持。无论是个人项目还是企业应用,Micronaut都能提供高效、一致的开发体验,成为跨平台开发的利器。通过简单的配置和代码编写,即可实现多语言支持,展现其强大的跨平台优势。
28 2
|
15天前
|
运维 监控 持续交付
深入浅出:微服务架构的设计与实战
微服务,一个在软件开发领域如雷贯耳的名词,它代表着一种现代软件架构的风格。本文将通过浅显易懂的语言,带领读者从零开始了解微服务的概念、设计原则及其在实际项目中的运用。我们将一起探讨如何将一个庞大的单体应用拆分为灵活、独立、可扩展的微服务,并分享一些实践中的经验和技巧。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和深入的理解。
43 3
|
22天前
|
存储 缓存 监控
函数计算产品使用问题之调用sd生图时,怎么保证高并发场景正常运行
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
22天前
|
弹性计算 监控 Serverless
函数计算产品使用问题之如何处理银行转账场景遇到的高并发问题
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
24天前
|
消息中间件 缓存 Kafka
go-zero微服务实战系列(八、如何处理每秒上万次的下单请求)
go-zero微服务实战系列(八、如何处理每秒上万次的下单请求)
|
24天前
|
缓存 NoSQL Redis
go-zero微服务实战系列(七、请求量这么高该如何优化)
go-zero微服务实战系列(七、请求量这么高该如何优化)