spark基础概念(一):幂等性。

1) 出处:幂等性源自数学概念,表示f(x) = f(f(x));

  含义:多次执行一个函数得到的值和执行一次得到的值相同。

  f(x) = pow(x, 1);  f(x) = abs(x);

 

2) 计算机中:幂等性表示执行多次所产生的影响与执行一次所产生的影响相同。

  业务场景[1]

  1. 绑定银行卡发送短信接口。

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

   2.创建订单接口。

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

 

3) 常用保证幂等性方法:

  1. 最多一次执行方法[2]。(加ID和查询log)
    1. 将每一个不同的业务操作赋予全局唯一ID
    2. 进行操作前,查询log,查询该ID的执行记录是否存在。
    3. 若未执行,则记录此操作的执行记录并开始执行。
    4. 若已经执行,则放弃执行此次业务操作。
    5. 若执行失败,则删除该执行记录。
    6. 若执行宕机,则一定时间后,删除该操作,并执行另一相同操作

   2.支付的具体业务流程如下[3]

      a.获取token

      b.使用token调用支付

      c.根据token查询此次操作是否存在,如果存在则表示这次操作已经执行过,直接返回结果;如果不存在,支付扣款,保存结果

      d.给客户端返回结果

 

[1]https://blog.csdn.net/qq_39291929/article/details/81429275

[2]https://cloud.tencent.com/developer/article/1394087

[3] https://blog.csdn.net/yaosiyu1991/article/details/79380561

转载于:https://www.cnblogs.com/cainiaoxuexi2017-ZYA/p/10965418.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值