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

spark基础概念(一):幂等性。的更多相关文章

  1. Spark集群基础概念 与 spark架构原理

    一.Spark集群基础概念 将DAG划分为多个stage阶段,遵循以下原则: 1.将尽可能多的窄依赖关系的RDD划为同一个stage阶段. 2.当遇到shuffle操作,就意味着上一个stage阶段结 ...

  2. 【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell

    Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实 ...

  3. 【Spark深入学习-11】Spark基本概念和运行模式

    ----本节内容------- 1.大数据基础 1.1大数据平台基本框架 1.2学习大数据的基础 1.3学习Spark的Hadoop基础 2.Hadoop生态基本介绍 2.1Hadoop生态组件介绍 ...

  4. spark基础知识介绍2

    dataframe以RDD为基础的分布式数据集,与RDD的区别是,带有Schema元数据,即DF所表示的二维表数据集的每一列带有名称和类型,好处:精简代码:提升执行效率:减少数据读取; 如果不配置sp ...

  5. 最全的spark基础知识解答

    原文:http://www.36dsj.com/archives/61155 一. Spark基础知识 1.Spark是什么? UCBerkeley AMPlab所开源的类HadoopMapReduc ...

  6. Flink入门-第一篇:Flink基础概念以及竞品对比

    Flink入门-第一篇:Flink基础概念以及竞品对比 Flink介绍 截止2021年10月Flink最新的稳定版本已经发展到1.14.0 Flink起源于一个名为Stratosphere的研究项目主 ...

  7. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  8. TCP/IP基础概念及通信过程举例

    TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...

  9. Jmeter基础之---jmeter基础概念

    Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...

随机推荐

  1. HTTPClick调用WebApi帮助类

    1.创建ApiHelper类 2.复制以下代码到类中 using System; using System.Collections.Generic; using System.Linq; using ...

  2. mysqldump 使用--tab=path参数时提示mysqldump: Got error: 1290: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement when executing 'SELECT INTO OUTFILE'

    报错: [root@zedu test]# mysqldump -h127.0.0.1 -uroot -p --single-transaction --add-drop-database --tab ...

  3. Mac终端神器zsh

    Mac终端神器zsh 先上一张图 1.背景介绍 在unix 内核的操作系统中,当然现在衍生出好多分支,linux ,OS X 都算. shell 就算和上面这些系统内核指令打交道的一座桥梁,我们通过键 ...

  4. 【leetcode】1286. Iterator for Combination

    题目如下: Design an Iterator class, which has: A constructor that takes a string characters of sorted di ...

  5. EF 批量添加数据

    原文:https://www.cnblogs.com/liuruitao/p/10049191.html 原文:https://www.cnblogs.com/yaopengfei/p/7751545 ...

  6. easyui datagrid 去除单击行选中事件

    转:http://www.xue163.com/588880/39049/390490560.html 解决方案: onClickRow: function (rowIndex, rowData) { ...

  7. .Net面向对象(OOP)

    序言 virtual虚方法 virtual 关键字用于在基类中修饰方法.virtual的使用会有两种情况: 情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法.那么在对派生类实例的 ...

  8. CDQ分治学习思考

    先挂上个大佬讲解,sunyutian1998学长给我推荐的mlystdcall大佬的[教程]简易CDQ分治教程&学习笔记 还有个B站小姐姐讲解的概念https://www.bilibili.c ...

  9. 灰度图像--图像分割 Sobel算子

    学习DIP第44天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不 ...

  10. delphi中Tkbmmemtable数据转成SQL脚本

    unit UMemtableToSql; interface uses SysUtils, Classes, DB, kbmMemTable, Variants, Dialogs, SuperObje ...