spark基础概念(一):幂等性。
2024-10-06 23:59:36
1) 出处:幂等性源自数学概念,表示f(x) = f(f(x));
含义:多次执行一个函数得到的值和执行一次得到的值相同。
如:f(x) = pow(x, 1); f(x) = abs(x);
2) 计算机中:幂等性表示执行多次所产生的影响与执行一次所产生的影响相同。
业务场景[1]:
- 绑定银行卡发送短信接口。
如果APP重复点击调用后台接口,后台重复调用第三方接口,造成用户收到多条短信,一般情况下控制在60s内再重发短信,如果不做控制,每一次调用第三方接口都会收费。
2.创建订单接口。
如果APP端因网络问题用户重复点击多次,会生成多个订单号,会造成系统业务问题。
3) 常用保证幂等性方法:
- 最多一次执行方法[2]。(加ID和查询log)
- 将每一个不同的业务操作赋予全局唯一ID
- 进行操作前,查询log,查询该ID的执行记录是否存在。
- 若未执行,则记录此操作的执行记录并开始执行。
- 若已经执行,则放弃执行此次业务操作。
- 若执行失败,则删除该执行记录。
- 若执行宕机,则一定时间后,删除该操作,并执行另一相同操作。
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
最新文章
- n维数组实现(可变参数表的使用)
- linux里的进程简介
- 纯Javascript实现Windows 8 Metro风格实现
- 【链表】BZOJ 2288: 【POJ Challenge】生日礼物
- App运营者必须知道的30款数据分析工具
- Could not fetch https://api.github.com/repos/RobinHerbots/jquery
- 如何使用sql语句使你的数据库减肥,下面以网狐6603数据库减肥脚本举例!
- iOS导航标题不居中问题(转载)
- MongoDB备份和恢复
- CLR类型设计之类型之常量和字段
- 关于Yuri Boykov and Vladimir Kolmogorov 于2004年提出的max flow / min cut的算法的详解
- 2013-9 OWASP论坛
- c++右值引用以及使用
- MySQL数据库执行计划(简单版)
- Android 应用的逆向和审计
- func_get_args函数
- P2885 [USACO07NOV]电话线Telephone Wire
- Hyper-V 与 VMware 和 vbox 的不兼容
- gitlab 集成Jenkins
- ACM-ICPC 2018 北京赛区网络预赛(9.22)