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. Mac下 CMD常用命令

    1.常用命令 pwd     当前工作目录 cd(不加参数) 进root cd(folder)      进入文件夹 cd ..     上级目录 cd ~     返回root cd -     返 ...

  2. NoSQL数据库技术实战-第1章 NoSQL与大数据简介 NoSQL数据库的类型

    键值存储数据库临时性:如Memcached.临时性的键值数据库把数据存储在内存中,在两种情况下会造成上数据的丢失,一是断电,而是数据内容超出内存大小.这种处理的好处是非常快.永久型:如Tokyo Ty ...

  3. order-independent transparency & programmable blending

    Yang, McKee - OIT and Indirect Shadows(SIGGRAPH 2010 Advanced RealTime Rendering Course).pptx 最近又发现了 ...

  4. python 文件操作的相对路径和绝对路径(windows)

    1.相对路径 windows  '.\'表示当前路径 with open(r'.\db\123.txt','w',encoding='utf-8') as f: f.write('abc') 2.绝对 ...

  5. vue基本语法 JS补充

    目录 一.VUE框架入门 1. vue框架的优势 二.VUE框架的基本使用 1. vue的引用 2. vue的基本语法结构 2. 插值表达式 3. 文本指令 (1)v-text (2)v-html ( ...

  6. hive元数据

    本文介绍Hive元数据库中一些重要的表结构及用途,方便Impala.SparkSQL.Hive等组件访问元数据库的理解. 1.存储Hive版本的元数据表(VERSION) 该表比较简单,但很重要. V ...

  7. CentOS下Hadoop运行环境搭建

    1.安装ssh免密登录 命令:ssh-keygen overwrite(覆盖写入)输入y 一路回车 将生成的密钥发送到本机地址 ssh-copy-id localhost (若报错命令无法找到则需要安 ...

  8. Windows系统下载地址

    地址: https://msdn.itellyou.cn/ 里面给出的是迅雷下载链接,请提前安装好迅雷

  9. webstorm 使用指南

    1. webstrom打开多个项目 默认情况下一次只能打开一个项目,如果需要打开多个就按照下面的方法: Preferences -> Directories -> Add Content ...

  10. URAL 2092 Bolero 贪心

    C - Bolero Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit S ...