业务设计原则

《亿级流量网站架构核心技术》读书笔记

一、防重设计

防重是通过在尽可能前端的位置阻挡请求重复执行,从而防止影响业务。它主要运用于“重复发生会造成业务影响”的场景。
请求本身可以发生多次,需要定义何为同一条业务数据。
分成业务本身允许多次和只允许一次的场景。
1、前端新增数据提报,对于一次提报应该只允许新增一条数据。如何在系统内确定为同一次提报:将同一次提报抽象为一个id,在前端触发进入表单填写界面的时候生成该id。
2、支付场景,同一个订单只允许支付一次。由于有多个调用目标方,无法感知用户上一次支付是否成功,在用户转换渠道发起支付时,无法认为该次支付是重复支付从而中止当前支付,但可以调用上一次支付的渠道尝试取消接口,如果返回取消成功,可继续支付,返回已支付则中断当前支付。或者在支付成功回调后判断是否已有支付流水,有则调用退款接口。
3、重复扣减库存,同一个单据只允许成功扣减一次库存,在库存侧保证只有一次库存扣减成功,可以在库存流水表做幂等

二、幂等设计

幂等和防重的目的一样,不同的是幂等一般不会报错,调用方无需感知是否重复的结果。

三、流程可定义

不同业务的流程,流程节点代码可重用,方便不同需求复用。

四、状态与状态机

1、正、逆状态考虑要不要分离存储
2、状态轨迹
3、并发状态修改

五、后台系统操作可反馈

1、可预览
2、可反馈

六、后台系统审批化

1、可追溯
2、可审计

七、文档和注释

1、目的:便于多人维护,防止信息孤岛,防止系统断代
2、文档库:设计架构、设计思想、数据字典、业务流程、现有问题
3、注释:业务代码和特殊需求应有注释

八、备份

1、代码备份:多地容灾
2、人员备份:防止单点阻塞

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

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

相关文章

JS中call()、apply()、bind()改变this指向的原理

大家如果想了解改变this指向的方法,大家可以阅读本人的这篇改变this指向的六种方法 大家有没有想过这三种方法是如何改变this指向的?我们可以自己写吗? 答案是:可以自己写的 让我为大家介绍一下吧! 1.call()方法的原理…

Python 语言在 Web 开发上有哪些应用框架?

Python 是一门多用途的编程语言,其简洁、易读且强大的特性使其成为Web开发领域的一种热门选择。Python Web开发框架提供了丰富的工具和功能,使得开发者能够更高效地构建各种规模和类型的Web应用。以下是一些在Python Web开发中常用的框架,每个…

[mysql]linux安装mysql5.7

之前安装的时候遇到了很多问题,浪费了一些时间。整理出这份教程,照着做基本一遍过。 这是安装包: 链接:https://pan.baidu.com/s/1gBuQBjA4R5qRYZKPKN3uXw?pwd1nuz 1.下载安装包,上传到linux。我这里就放到downloads目录下面…

WaitGroup原理分析

背景 在实际业务开发中,我们会遇到以下场景:请求数据库,批量获取1000条数据记录后,处理数据 为了减少因一次批量获取的数据太多,导致的数据库延时增加,我们可以把一次请求拆分成多次请求,并发去…

C#-快速剖析文件和流,并使用

目录 一、概述 二、文件系统 1、检查驱动器信息 2、Path 3、文件和文件夹 三、流 1、FileStream 2、StreamWriter与StreamReader 3、BinaryWriter与BinaryReader 一、概述 文件,具有永久存储及特定顺序的字节组成的一个有序、具有名称的集合; …

大模型的全方位评估

摘要: 评估通过提供一种跟踪进度、理解模型以及记录其能力和偏差的方法,为基础大模型提供了背景。基础大模型挑战了机器学习中标准评估范式实现这些目标的能力,因为它们距离特定任务只有一步之遥。为了设想适合基础模型的评估新范式&#xff…

枚举 LeetCode2048. 下一个更大的数值平衡数

如果整数 x 满足:对于每个数位 d ,这个数位 恰好 在 x 中出现 d 次。那么整数 x 就是一个 数值平衡数 。 给你一个整数 n ,请你返回 严格大于 n 的 最小数值平衡数 。 如果n的位数是k,n它的下一个大的平衡数一定不会超过 k1个k1…

图论——最小生成树

图论——最小生成树 A wise man changes his mind, a fool never will 生成树 一个连通图的生成树是一个极小的连通子图,它包含图中全部的n个顶点,但只有构成一棵树的n-1条边。 最小生成树 在这些边中选择N-1条出来,连接所有的N个点。这N-1…

Java后端的登录、注册接口是怎么实现的

目录 Java后端的登录、注册接口是怎么实现的 Java后端的登录接口是怎么实现的 Java后端的注册接口怎么实现? 如何防止SQL注入攻击? Java后端的登录、注册接口是怎么实现的 Java后端的登录接口是怎么实现的 Java后端的登录接口的实现方式有很多种&a…

使用git出现的问题

保证 首先保证自己的git已经下载 其次保证自己的gitee账号已经安装并且已经生成ssh公钥 保证自己要push的代码在要上传的文件夹内并且配置文件等都在父文件夹(也就是文件没有套着文件) 问题 1 $ git push origin master gitgitee.com: Permission de…

近似同态加密的 IND/SIM-CPA+ 安全性:对于 CKKS 实际有效的攻击

参考文献: [LM21] Li B, Micciancio D. On the security of homomorphic encryption on approximate numbers[C]//Advances in Cryptology–EUROCRYPT 2021: 40th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Z…

【Linux】命令expect使用详解

🦄 个人主页——🎐个人主页 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油!&…

【上海大学数字逻辑实验报告】五、记忆元件测试

一、实验目的 掌握R-S触发器、D触发器和JK触发器的工作原理及其相互转换。学会用74LS00芯片构成钟控RS触发器。学会用74LS112实现D触发器学会在Quartus II上用D触发器实现JK触发器。 二、实验原理 基本R-S触发器是直接复位-置位的触发器,它是构成各种功能的触发器…

AI文档助手,当下热门的AI文档助手【2024】

在当今信息爆炸的时代,文档创作的需求愈发庞大。为了满足用户对高效、准确、原创性文档的需求,人工智能技术的应用日益广泛。本文将专心分享AI文档助手领域的热门推荐。 AI文档助手的背景与应用 AI文档助手作为人工智能技术在文档创作领域的一大应用&am…

nginx配置自建SSL证书

文章目录 前言配置SSL证书SSL证书放在 Nginx 而不放在应用服务器上的好处Nginx只能转发http协议吗Nginx转发TCP协议会收到端口限制吗Nginx本身能将Websocket数据转化成TCP数据吗总结 前言 之前的一篇文章《自建CA并生成自签名SSL证书》中讲到为什么要自建CA和自签名SSL证书&am…

velocity-engine-core是什么?Velocity模板引擎的使用

velocity-engine-core是什么?Velocity模板引擎的使用 1. 常见的模板引擎2. Velocity 的语法3.Velocity的使用 相信在日常开发中或多或少都听过或者使用过模板引擎,比如熟知的freemarker, thymeleaf等。而模板引擎就是为了实现View和Data分离而产生的。 而…

C++封装、继承(单继承)、多态详细分析。

系列文章目录 文章目录 系列文章目录摘要一、基本概念二、多态的分类三、多态的实现3.1 类型兼容与函数重写3.2 动态联编与静态联编3.3 虚函数3.4 动态多态的实现过程 总结参考文献 摘要 多态性特征是 C中最为重要的一个特征,熟练使用多态是学好 C的关键&#xff0…

Kotlin关键字二——constructor和init

在关键字一——var和val中最后提到了构造函数,这里就学习下构造函数相关的关键字: constructor和init。 主要构造(primary constructor) kotlin和java一样,在定义类时就自动生成了无参构造 // 会生成默认的无参构造函数 class Person{ }与java不同的是…

configure脚本的常用参数

下面是一些常用的configure选项参数及其解释&#xff1a; --prefix<directory>&#xff1a;指定安装目录--with-<package>&#xff1a;指定依赖的外部库或软件包--enable-<feature>&#xff1a;启用某个特性--disable-<feature>&#xff1a;禁用某个特…

原创 | 数据的确权、流通、入表与监管研究(一):数据与确权

作者&#xff1a;张建军&#xff0c;中国电科首席专家&#xff0c;神州网信技术总监 本文约7100字&#xff0c;建议阅读10分钟 本文主要介绍数据与数据分类、数据确权规则、数据的所有权与其他权利等方面内容&#xff0c;并进行案例分析。 2022年12月发布的《关于构建数据基础制…