幂等性的设计

作者: 异步_缓存_队排好 | 来源:发表于2019-05-28 19:04 被阅读0次

幂等性设计

在增删改查四个操作中,尤为注意就是增加和修改

查询操作

查询结果是不会有改变的,查询一次和多次得到的结果是一样的,select是天然幂等性

删除操作

删除一次和删除多次都是把数据删除.(返回的结果不一样,删除的数据不存在,返回0,删除的数据多条,返回的结果多个,在不考虑返回结果的情况下,删除操作也具有幂等性)

更新操作

大多数情况下是幂等的,但是在少数情况下不是幂等的,比如

  • 把表中的id为xxx的记录a字段的值设置为1,这种操作不管执行多少次都是幂等的
  • 把表中id为xxx的记录的a字段值增加1,这种操作就不是幂等的

新增操作

增加在重复提交的情况下需要考虑幂等性的问题,比如支付的问题


如何保证幂等性

  • 通过代码逻辑判断实现

    • 数据库各种锁机制
    • 分布式各种锁机制
    • 业务代码各种锁机制
  • 使用token机制(广泛)[cookie/session->防重复提交->csrf]

    • token机制实现的步骤

​ 1.生成全局唯一的token,token放到redis或者jvm内存,token会在页面跳转时获取,存放到pageScope中,支付请求提交先获取token,如果是前后分离的项目,token应该在生成结算信息的时候交给前端

​ 2.提交后 后台校验token,执行成功同时删除token,生成新的token更新redis,当第一次提交以后token就被更新了,页面再次提交的携带的token是已经被删除的token,后台验证失败不让提交

MQ异步

实现步骤

操作注意的细节:

1.过期订单我们需要关闭,关闭之前需要判断是否支付过了,如果支付过了,就判断不用关闭

2.过期订单我们收到,判断关闭的状态,有可能这个时候订单恰好被支付了,我们需要实时的获取此订单的支付信息,使用分布式锁的方式,这样才能够避免订单状态错误


使用分布式锁

相关文章

  • 幂等性设计

    1、概念 任意多次执行产生的影响与一次执行产生的影响相同,无 副作用。 幂等函数/幂等方法==使用相同参数重复执行...

  • 幂等性的设计

    幂等性设计 在增删改查四个操作中,尤为注意就是增加和修改 查询操作 查询结果是不会有改变的,查询一次和多次得到的结...

  • 接口的幂等性的N种考虑

    分布式服务接口的幂等性如何设计 什么是幂等性 一个分布式系统中的某个接口,要保证幂等性,该如何保证?这个事儿其实是...

  • 幂等

    再谈幂等机制 一、什么是幂等性? 幂等性(Idempotence)。在HTTP/1.1规范中幂等性的定义是: Me...

  • SpringBoot接口幂等性实现的4种方案!

    目录 什么是幂等性 什么是接口幂等性 为什么需要实现幂等性 引入幂等性后对系统的影响 Restful API 接口...

  • 接口幂等性设计

    简书日更 第1篇: 接口幂等性设计 相关知识 1. 接口幂等性涉及的相关问题 经常遇到数据重复的问题 表单录入如何...

  • 接口设计-幂等性

    根据网络资料整理 幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。...

  • 接口幂等性设计

    一、什么是幂等? 看一下维基百科怎么说的: 幂等性:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和...

  • 03 幂等性设计

    一、概述 一次和多次请求某一个资源应该具有相同的副作用。 1. 服务间调用状态 把系统解耦后,服务间的调用三个状态...

  • 什么是接口的幂等性,如何实现接口幂等性?一文搞定

    每天一个知识点 什么是接口的幂等性,如何实现接口幂等性? (一)幂等性概念 幂等性原本是数学上的概念,用在接口上就...

网友评论

    本文标题:幂等性的设计

    本文链接:https://www.haomeiwen.com/subject/qdrjtctx.html