分布式系统幂等性
来源:互联网 发布:c语言编写游戏教程 编辑:程序博客网 时间:2024/06/07 04:00
一:引言
幂等性的重要性不言而喻。记得我第一次接触幂等性概念时,是在博主之前公司一个购买理财产品的业务中。场景就是重复购买了这只理财产品,至今记忆犹新。值得一提的是,保证幂等性也算是一种对重放攻击防御手段。对于其他的API安全性设计,请移步到博主的另一篇文章:http://blog.csdn.net/ruben95001/article/details/64441195
二:介绍
幂等性就是对于用户来说,重复的操作等到的结果必然是一致的。不会因为用户重复操作,产生一些附属效果。举个栗子:你在某宝上买了一台肾8,支付扣款成功,但是返回结果的时候网络异常,然后不明所以的你,拼命的点击付款按钮。如果你的账户多次扣款,交易记录也有多条,那么你就亏大了。这就是保证幂等性的重要性。
三:设计和运用
在大家平时的增删改查基本操作中,这些操作都会放入事务中,一旦发生了异常,事务回滚。但是在响应客户端的时候,也有可能出现网络中断或者异常等等不可描述的状况。当然对于删改查操作,幂等性的重要性不能得以体现,然而在新增操作时,幂等性体现的淋漓尽致。想想上面的买肾8的栗子,你就会不寒而栗。
这里我说说的我当时的解决方案:回到用户购买理财产品的场景,解决方案步骤如下:
1:异步请求获取购买理财产品的票据ticketId,该票据是唯一性的,而且是有时效性的30分钟。
2:调用购买理财产品的API,客户端传入票据ticketId,服务器端查询此票据是否存在,如果存在,则表示该操作是有效的,操作成功后删除服务器下票据。童鞋们也可以优化下,进行入库操作等等,不加于赘述。
可能童鞋们也想到了其他的更好的方案,例如加锁等,欢迎大家一起交流。欲想了解数据库的锁机制,移步到另一篇文章:http://blog.csdn.net/ruben95001/article/details/70199031
下一篇将介绍分布式事务,将处理分布式下,数据同步的难题。
完!
- 分布式系统幂等性
- 分布式系统接口幂等性
- 什么是分布式系统中的幂等性
- 分布式系统接口幂等性
- 分布式系统---幂等性设计
- 什么是分布式系统中的幂等性
- 什么是分布式系统中的幂等性
- 分布式系统接口幂等性设计
- 什么是分布式系统中的幂等性
- 什么是分布式系统中的幂等性
- 什么是分布式系统中的幂等性
- 分布式系统的接口幂等性设计
- 分布式系统接口幂等实现
- 分布式系统互斥性与幂等性问题的分析与解决
- 分布式系统互斥性与幂等性问题的分析与解决
- 分布式系统互斥性与幂等性问题的分析与解决
- 分布式系统互斥性与幂等性问题的分析与解决
- 分布式高并发系统如何保证对外接口的幂等性?
- 快速排序
- ISE中Xilinx全局时钟系统的设计
- 梯度向量与梯度下降法
- 关于unity中线程使用的小结
- 1 OF 100DAYS
- 分布式系统幂等性
- 三向切分的快速排序
- perl和python中的闭包
- BufferWriter 中的flush函数
- ConcurrentHashMap源码阅读记录--JDK8
- js操作cookie
- APP加固方式全面升级,几维安全多种APP加密方式任你选!
- 查看窗口Tab顺序
- MySQL 第五篇:系统函数和联合查询