发表日期:2017-11-18 16:25:42文章编辑:025app.com 标签:公司新闻
保障幂等性,就必须控制增加、删除和更新操作的不重复操作。犹如在单台服务器上,使用locker控制单例模式。在客户端或在服务端生成对本次不可重复操作的标识,再以后N次操作时,均检测该标识的动作是否已发生,若已发生则不再重复执行。
涉及到金钱操作的,除了幂等性保障外,还必须保障余额足够,所以在不同标识控制的改钱数操作时,均应在最终未完成整个事务过程中,对操作的金额进行冻结,以防止超额使用。
问个问题:
对于相同的ticket_id和相同的amount,一共发两次请求。
1. 第一次请求用户账户的余额不够,结果自然是失败的。
2. 在第二次请求之前用户又存了些钱,现在可以看做余额够了
3. 第二次请求发过来,如果顺利执行,结果是成功的。
我们可以把这种情况看做幂等吗?