本文主要介绍微服务API网关的需求分析,分为两个方面:
- 功能性需求分析 - 用例图和用例表
- 非功能性需求分析
目录 Table of Contents
UML
用例图
- 用例图一般由参与者、用例、系统边界和关系构成。
关系类型 | 元素 | 说明 | 条件性 | 直接性 | 箭头指向 |
---|---|---|---|---|---|
关联 | 参与者与用例之间的关系 | 参与者和用例通信 | - | - | 发送方指向接受方 |
泛化 | 参与者之间或用例之间的关系 | 子元素继承父元素 | 无 | 直接 | 子元素指向父元素 |
包含 | 用例之间的关系 | 复杂用例拆成简单用例 | 无 | 间接 | 复杂用例指向简单用例 |
扩展 | 用例之间的关系 | 基础用例增加附加用例 | 有 | 直接 | 基础用例指向附加用例 |
用例表
- 用例表一般由用例编号、用例名称、参与者、用例描述、前置条件、后置条件、正常流程和异常流程构成。
条目 | 内容 |
---|---|
用例编号 | [数字] |
用例名称 | [动宾结构] |
参与者 | [主语] |
用例描述 | [相互独立;可以观测] |
前置条件 | [分点说明] |
后置条件 | [分点说明] |
正常流程 | [正常操作→正常结果] |
异常流程 | [异常操作→异常结果] |
功能性需求分析
微服务API网关管理模块用例
- 下图为微服务API网关管理模块的用例图,其展示了在管理模块中,管理员用户作为参与者与用例之间的关系以及主用例和子用例之间的关系。根据分析,管理模块共有6个主要的用例,分别为用户登录、用户登出、管理用户、管理服务、管理应用和数据统计。
微服务API网关核心模块用例
- 下图为微服务API网关核心模块的用例图,其展示了在核心模块中,普通用户作为参与者与用例之间的关系以及主用例和子用例之间的关系。根据分析,核心模块共有7个主要的用例,分别为协议接入、权限认证、流量统计、流量控制、请求重写、负载均衡和反向代理。
非功能性需求分析
安全性
- 对于用户操作而言:应用口令安全要求和会话超时机制
- 对于请求访问而言:设置
JWT
校验和IP
校验 - 对于数据传输而言:启动
HTTPS
监听 - 对于数据保存而言:敏感信息使用盐值加密并以密文方式入库
高性能
- 选用性能表现优秀、功能支持齐全的框架
Gin
- 先访问缓存
Redis
代替直接访问数据库MySQL
高可用
- 故障时仍稳定服务:进行多实例部署,周期探活并故障重启
- 容易横向扩展实例:弹性伸缩&&负载均衡
易用性
- 统一的
RESTful API
接口 - 直观的
Vue-Element-Admin
界面
FAQs
Q:如何控制用例的粒度呢?
A:参考用例的类型与粒度