业务设计原则

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

一、防重设计

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

二、幂等设计

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

三、流程可定义

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

四、状态与状态机

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

五、后台系统操作可反馈

1、可预览
2、可反馈

六、后台系统审批化

1、可追溯
2、可审计

七、文档和注释

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

八、备份

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值