后端业务架构文档模板

news2025/2/2 11:03:56

文章目录

    • 1 业务理解
      • 1.1 项目目标
      • 1.2 业务术语
      • 1.3 系统边界
      • 1.4 关键领域模型
    • 2 系统架构图
      • 2.1 分层架构图
      • 2.2 系统链路图
      • 2.3 系统部署图
    • 3 关键流程
      • 3.1 关键流程1
        • 3.1.2 流程简述
        • 3.1.2 业务流程图
        • 3.1.3 安全性
          • 3.1.3.1 资金安全
          • 3.1.3.2 内容安全
      • 3.1.4 稳定性
        • 3.1.4.1 接口依赖
        • 3.1.4.2 限流
        • 3.1.4.3 可伸缩性
        • 3.1.4.4 数据库
        • 3.1.4.5 缓存
        • 3.1.4.6 数据一致性
        • 3.1.4.7 监控告警
        • 3.1.4.8 容灾兜底快恢
        • 3.1.4.9 核心预案
        • 3.1.4.10 其它风险
    • 3.2 关键流程2
    • 3.3 关键流程3
  • 4 资源信息
    • 4.1 容器
    • 4.2 数据库
    • 4.3 缓存
    • 4.4 消息队列
    • 4.5 定时任务
    • 4.6 其它资源
  • 5 关键问题总结

参考文档:
《 XXXX》

变更记录:

版本号变更人变更时间变更记录
V1.0.0张三2022-12-10初始模板

1 业务理解

1.1 项目目标

项目的范围、约束和期望

1.2 业务术语

名词解释案例
充值
提现

1.3 系统边界

描述系统负责的业务范围,以及上下游关系。

1.4 关键领域模型

2 系统架构图

2.1 分层架构图

逻辑视图,用于描述系统的功能需求,即系统给用户提供哪些服务;以及描述系统软件功能拆解后的组件关系、组件约束和边界,反映系统整体组成与系统如何构建的过程。
在这里插入图片描述

2.2 系统链路图

用于描述系统软件组件之间的通信时序,数据的输入输出。这里描述的是整个系统组件间的处理过程,而不是具体某个接口内部的处理流程图。
在这里插入图片描述

2.3 系统部署图

开发出的软件系统,最终是要运行在物理或软件环境上。物理环境可能是服务器、PC机、移动终端等物理设备;软件环境可以是虚拟机、容器、进程或线程。部署图就是对这个部署信息进行描述。
在这里插入图片描述

3 关键流程

关键流程是指可能产生高舆情、高资损风险的场景

3.1 关键流程1

3.1.2 流程简述
3.1.2 业务流程图

在这里插入图片描述

3.1.3 安全性
3.1.3.1 资金安全

资金安全评估,包括且不限于如下几项

  1. 资金调用链路。如支付宝、微信转账完整链路,用户优惠券发放链路。
  2. 资金对账方案。整体对账+明细对账方案,对账口径等。
  3. 资损评估。是否有资损(包括用户资金损失和平台资金损失),风险规模,熔断和止损方案。
3.1.3.2 内容安全

如果有PGC/UGC的内容,或者有用户、商家上传的部分,要明确每个字段的内容安全方案。

3.1.4 稳定性

3.1.4.1 接口依赖
接口名访问链接下游强弱依赖和读写比例日常&峰值流量
xxDB:强依赖,2读1写

强依赖:下游错误时自身接口完全不可用。
弱依赖:下游错误时,自身功能部分不可能,如部分字段不展示或展示计算中等。

3.1.4.2 限流
接口名是否有限流,如果有限流则说明方案和影响

限流方案如:

  1. SLB限流
  2. 应用内如Sentinel限流
  3. cpu等自适应限流
  4. 消息队列消费速率限流
  5. 对下游限流(保护下游,或者防止下游拖垮自己)

限流时影响包括且不限于:

  1. 用户侧错误信息、文案,不能报被限流等,也不能提示用户重试(避免雪崩)。
  2. 资金、权益类场景重点关注前端兜底文案,不能兜底显示中奖或具体金额,可显示错误页或者部分数值显示“计算中”等。
  3. 可能产生的数据不一致情况,以及如何应对。
3.1.4.3 可伸缩性
链路名资源是否可以水平扩展链路上是否有单点风险如果出现资源不足如何应对
登录
抢红包
3.1.4.4 数据库

数据库性能评估,包括不限于日常&峰值水位(cpu、内存、磁盘等占比),慢SQL

3.1.4.5 缓存

梳理缓存抖动、击穿、热点、带宽打满等异常情况下对业务的影响。

3.1.4.6 数据一致性

评估链路中是否有数据不一致的场景,包括不限于:

  1. 分布式写场景。部分写失败场景,幂等、重试等逻辑。
  2. 异步链路:消息延迟、乱序、丢失等风险。
  3. 离线计算链路:如果离线任务产出不及时,对系统的影响。
  4. 数据污染:上游数据错误、离线任务产出异常防范,如设置关键字段的上下限(优惠券发放最多xx元)

针对每个场景,要明确:

  1. 数据不一致的影响面
  2. 是否会出现资损或舆情
  3. 对账、监控、告警
3.1.4.7 监控告警
  1. 接口成功率监控
  2. 接口流量监控
  3. 应用cpu、线程池、磁盘等监控
  4. 数据库监控
  5. 对账监控
3.1.4.8 容灾兜底快恢
  1. 强弱依赖整理,降级方案
  2. 容灾。如存储可靠性、存储备份、应用可用性、多机房等
  3. 兜底机制
  4. 单点风险
  5. 快恢方案
3.1.4.9 核心预案

罗列业务中关键的可开关、可调整参数等

3.1.4.10 其它风险
风险解决方案/结论
数据迁移过程中,可能会有丢数据风险这么XX做可以基本规避这个风险

3.2 关键流程2

3.3 关键流程3

4 资源信息

4.1 容器

ECS、微服务容器等资源情况。

4.2 数据库

实例类型表名是否分库分表,分表字段单表总行数每日新增行数
mysql、TableStore等

4.3 缓存

4.4 消息队列

实例Topic峰值qps每日总量消息平均大小订阅者列表

4.5 定时任务

任务实现方式(分布式、crontab等)执行开始时间平均时长备注

4.6 其它资源

SLB、CDN、OSS等

5 关键问题总结

维度问题级别描述解决方案成本责任人完成时间
安全高/中/低高/中/低
稳定性
成本
效率
体验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1337962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zookeeper的使用场景

统一命名服务 利用ZooKeeper节点的树形分层结构和子节点的顺序维护能力,来为分布式系统中的资源命名。 例:分布式节点命名 分布式消息队列 1.在Zookeeper中创建一个持久节点,用作队列的根节点。队列元素的节点放在这个根节点下。 2.入队:…

【Linux学习笔记】Linux下nginx环境搭建

1、下载nginx 安装rpm命令: rpm ivh nginx-release.rpm。(直接使用linux命令下载wget http://nginx.org/packages/rhel/6/noarch/RPMS/nginx-release-rhel-6-0.el6.ngx.noarch.rpm 2、设置nginx开机启动 chkconfig nginx on 3、开启nginx服务 方法一:service nginx…

centos7 安装最新版jenkins; 安装jdk17 jenkins; 2024安装最新版jenkins; jenkins部署服务器启动失败

注意: java, maven配置,不再赘述,主要解决:配置端口,启动失败,问题 提供一个jdk下载网站: https://www.injdk.cn/ /etc/profile配置: MAVEN_HOME/home/maven export PATH$MAVEN_HO…

SEO网站分类完整指南

你知道吗,适当的网站分类结构对于良好的SEO很重要?在我们的最新指南中了解如何使用网站分类。 对于那些已经在SEO领域工作了一段时间的人来说,你可能听说过网站分类法,因为它指的是网站。 当您提到网站的结构以及用户浏览的难易…

k8s面试之——简述网络模型

kubernetes网络模型是kubernetes集群中管理容器网络通信的一种机制,用于实现pod间、pod与外部网络间的通信和互联,并提供了多种网络插件和配置选项来满足不同应用场景下的需求。kubernetes网络模型可以分为一下几个部分: 1. pod网络模型 在…

IntelliJ IDEA配置:过滤Project显示的文件类型

在IntelliJ IDEA-Settings-Editor-File Types界面设置,可设置识别的文件类型及忽略的文件类型,被识别的文件类型会展示在Project浏览窗口,忽略的文件类型不会展示在Project浏览窗口。

使用python netmiko模块批量配置Cisco、华为、H3C路由器交换机(支持 telnet 和 ssh 方式)

0. 当前环境 外网电脑Python版本:3.8.5(安装后不要删除安装包,以后卸载的时候用这个)外网电脑安装netmiko第三方库:cmd中输入pip install netmiko内网电脑环境:无法搭建python环境,需外网电脑完…

【kafka消息里会有乱序消费的情况吗?如果有,是怎么解决的?】

文章目录 什么是消息乱序消费了?顺序生产,顺序存储,顺序消费如何解决乱序数据库乐观锁是怎么解决这个乱序问题吗 保证消息顺序消费两种方案固定分区方案乐观锁实现方案 前几天刷着视频看见评论区有大佬问了这个问题:你们的kafka消…

Bug:Too many open files【ulimit限制】

Bug:Too many open files 今天在开发某个下载功能时,发现文件总是下载到250多个程序就挂掉,同时会打崩服务器,查看错误日志发现报:too many open files. 思路:根据错误信息可以知道打开的文件数过多&#x…

【滑动窗口】【map】LeetCode:76最小覆盖子串

作者推荐 【二叉树】【单调双向队列】LeetCode239:滑动窗口最大值 本文涉及知识点 滑动窗口 题目 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。 注意: 对…

【工具】windeployqt 在windows + vscode环境下打包

目录 0.背景简介 1.windeployqt简介 2.打包具体过程 1)用vscode编译,生成Release文件夹(也有Debug文件夹,但是发布版本一般都是用Release) 2)此时可以看下Release文件夹内,一般是.exe可执行…

PYTHON基础:最小二乘法

最小二乘法的拟合 最小二乘法是一种常用的统计学方法,用于通过在数据点中找到一条直线或曲线,使得这条直线或曲线与所有数据点的距离平方和最小化。在线性回归中,最小二乘法被广泛应用于拟合一条直线与数据点之间的关系。 对于线性回归&…

OSPF多区域配置-新版(12)

目录 整体拓扑 操作步骤 1.基本配置 1.1 配置R1的IP 1.2 配置R2的IP 1.3 配置R3的IP 1.4 配置R4的IP 1.5 配置R5的IP 1.6 配置R6的IP 1.7 配置PC-1的IP地址 1.8 配置PC-2的IP地址 1.9 配置PC-3的IP地址 1.10 配置PC-4的IP地址 1.11 检测R5与PC1连通性 1.12 检测…

C# WPF上位机开发(扩展上位机之外的技能)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 如果把c# wpf只是看成是一个做界面的框架,那确实有点狭隘了。单独的上位机软件,如果不需要上下游的支持,没有与…

vue3+ts 可视化大屏无限滚动table效果实现

注意:vue3版本需使用 vue3-seamless-scroll npm npm install vue3-seamless-scroll --save页面引入 TS import { Vue3SeamlessScroll } from "vue3-seamless-scroll";代码使用(相关参数可参考:https://www.npmjs.com/package/vu…

Unity与Android交互通信系列(3)

在上两篇文章中,我们已经能够通过直接使用Java,或者通过AndroidJavaClass、AndroidJavaObject这两个类实现在Unity端和Android原生端的通信。这已经可以解决很多问题,但这种方式不够模块化,不够优雅。 在实际使用中,将…

【宇宙猜想】AR文创入驻今日美术馆、北京天文馆等众多展馆,在AR互动中感受科技魅力!

近日,由「宇宙猜想」推出的AR系列文创产品先后入驻今日美术馆、北京天文馆、国家自然博物馆、上海天文馆、国家海洋馆、中华手工展馆等各大馆场并与其展开相关合作。 「宇宙猜想」致力于创造虚拟空间价值,用AR技术与文创产品碰撞出新的火花,为…

Qt Designer 常见需求

窗口 参考链接 【转载】Qt Designer 使用全攻略_qtdesigner使用-CSDN博客 QT屏幕自适应自动布局,拖动窗口自动变大变小(一)_qt布局随窗口大小变化-CSDN博客 pyqt5设置高分辨率以及icon显示模糊解决办法_python qt图显示不清晰-CSDN博客 窗…

RHCE9学习指南 第11章 网络配置

11.1 网络基础知识 一台主机需要配置必要的网络信息,才可以连接到互联网。需要的配置网络信息包括IP,子网掩码,网关和DNS。 11.1.1 IP地址 在计算机中对IP的标记使用的是32bit的二进制,例如, 11000000 10101000 00…

Python 爬虫之下载歌曲(二)

获取深夜emo云歌单信息 文章目录 获取深夜emo云歌单信息前言一、基本流程二、代码编写1.基本要素代码2.获取歌名和链接信息3.获取歌曲的作者信息4.将上面三个列表遍历保存 三、效果展示 前言 换个平台,爬歌深夜网抑云平台的歌单的相关信息,关于作者、歌…