分布式系统接口幂等性

https://blog.csdn.net/qq_39291929/article/details/81429275(主内容)

https://www.jianshu.com/p/25f4b64e2068(token机制)


概念:对其任意次数的操作结果与一次操作的结果相同(不用担心重复执行会对系统造成改变)

业务场景:

1.绑定银行卡发送短信接口。如果APP重复点击调用后台接口,后台重复调用第三方接口,造成用户收到多条短信,一般情况下控制在60s内再重发短信,如果不做控制,每一次调用第三方接口都会收费。

2.创建订单接口。如果APP端因网络问题用户重复点击多次,会生成多个订单号,会造成系统业务问题。


解决方案:

幂等性解决方案

1.数据库表加唯一索引,防止新增脏数据。比如对订单号进行加唯一索引,防止生成重复订单。

如果不加索引的后果是:当根据订单号去支付,支付表生成两条重复的订单号,然后去支付宝、微信、易宝支付去支付,付款完成后,第三方异步回调接口,本地接口首先根据订单号查询实体,发现查询到两条,系统就会抛出异常。

2.分布式锁

利用redis,在业务系统插入数据或者更新数据,获取分布式锁,然后做操作,之后释放锁,这样其实是把多线程并发的锁的思路

3.token机制,防止重复提交

(1). 数据提交前要向服务的申请token,token放到redis中,token有效时间

(2). 提交后后台校验token,同时删除token,生成新的token返回(https://www.jianshu.com/p/25f4b64e2068)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.幂等性定义 1.1 数学定义 在数学里,幂等有两种主要的定义: 在某二元运算下,幂等元素是指被自己重复运算(或...
    王帅199207阅读 4,990评论 0 152
  • 一、背景 我们实际系统中有很多操作,是不管做多少次,只要是同一个动作都应该产生一样的效果或返回一样的结果。例如:1...
    jesse_cheng阅读 843评论 0 1
  • 含义:接口可重复调用后,在调用方多次调用的情况下,接口最终得到的结果是一致的。 有些接口天然具备幂等性,如查询接口...
    刘敏_15da阅读 1,797评论 0 0
  • 实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 1. 前端重复提交选中的数据...
    值得一看的喵阅读 6,814评论 1 6
  • 雪下的不大,但刺骨,雪花像鹅绒般飘落在我的衣服上,裤子上,即使手中撑着一面敞开的大伞也对这温柔可爱的对手毫无办法。...
    丹庭书阅读 199评论 0 1