首页 > 其他分享 >幂等概念(任意多次执行所产生的影响均与一次执行的影响相同)

幂等概念(任意多次执行所产生的影响均与一次执行的影响相同)

时间:2024-08-28 10:39:04浏览次数:6  
标签:幂等键 加锁 打款 影响 接口 重试 执行 任意

概述
什么是幂等?幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。f(f(x)) = f(x),即其任意多次执行所产生的影响均与一次执行的影响相同。
百度百科幂等介绍

1 为什么要做幂等
如果系统只是读的接口不涉及写的,这些接口本身就是幂等的。对于涉及数据变更的是需要做幂等的,如果不做幂等可能会导致重复的数据(多条),可能产生资损问题等。比如下单接口如果不做幂等可能出现用户提交1次多个订单(重发请求&底层网络库重试等等);打款如果不做幂等可能出现同一个订单多次打款等问题,这样就会产生资损。

2 怎么做幂等
首先选择一个幂等键,要求这个键必须是唯一性、不变性、需要持久化。比如打款时候使用订单号作为幂等键。
其次根据幂等键判断是否已经被处理,首次处理需要对幂等键加锁(分布式)。这里面加锁可以是redis、db唯一键(捕获唯一键异常转换成特定错误码)等来对幂等键加锁。并发场景下,被幂等住了返回特定错误码让调用方原参数重试。如下图所示当A调用B时候返回幂等错误,继续重试或者查询B处理结果。

 

幂等处理基本流程

 


————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/huangshanchun/article/details/102527165

标签:幂等键,加锁,打款,影响,接口,重试,执行,任意
From: https://www.cnblogs.com/kelelipeng/p/18384110

相关文章

  • 【计算机组成原理】五、中央处理器:1.CPU的功能与结构&指令执行过程(运算器、数据通路、
    五、中央处理器文章目录五、中央处理器1.CPU的功能与结构1.1CPU功能1.2运算器1.2.1基本结构1.2.2ALU和寄存器的数据通路1.3控制器1.3.1基本结构1.3.2控制器功能1.4CPU的基本结构2.指令执行过程2.1指令周期2.2指令周期流程2.3数据流2.4指令执行方案:如何安排多条指令......
  • shell脚本编写之本地脚本的编写和执行
    1、编写建立一个myshell.sh文件,使用vim进行编辑。elf@ubuntu:~/work/example/scrip_test$ vimmyshell.sh在该文件中,添加:#!/bin/bashecho"myfirstshell!"其中#!/bin/bash用来指定使用的shell应用;echo"myfirstshell!"为脚本中编写的命令代码。2、执行在执行......
  • 使用 perf probe测量Linux用户空间代码的执行时间
    1Linuxperf简介perf是Linux内核自带的一个强大的性能分析工具,它能够深入到内核和用户空间,提供丰富的性能计数器和事件跟踪功能,帮助开发者和系统管理员精确地定位系统性能瓶颈。1.1perf的主要功能:性能事件采样:可以采样各种硬件性能事件,如CPU周期、缓存命中率、指令......
  • 【漏洞复现】赛蓝企业管理系统 AuthToken 身份绕过任意登陆漏洞
    免责声明:        本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测试时,可能会违反某些法律法规......
  • springBoot应用使用exe4j与innosetup打包为exe可执行程序手把手教学
    文章目录1.welecome2.选择JARinEXEmode3.应用信息4.Executableinfo5.启动配置6.JRE7.生成可执行exe文件8.点击exe启动查看进程9.查看日志10.使用innosetup工具进行二次打包10.1安装innosetup10.2编译后exe文件安装界面乱码解决10.3安装及验证11.总结1.welecome......
  • 【项目实践】CompletableFuture异步编排在多任务并行执行中的使用
    【项目实践】CompletableFuture异步编排在多任务并行执行中的使用一、单次请求处理多任务的场景        在实际项目中,我们经常会遇到一些比较复杂的查询,需要给前端响应一个内容量较大的响应结果。例如在租房系统的app中,点击具体的某个房间查看详情,需要后端将这个房间的......
  • 国产游戏技术:创新驱动下的全球影响力
    国产游戏技术能否引领全球?前言技术亮点:国产游戏的创新之路面临的挑战:技术创新与市场适应发展机遇:拥抱新技术,拓展国际市场IT技术创新:推动行业发展的新引擎人才需求:技术人才的紧缺与机遇结语:国产游戏的全球影响力前言  近年来,国产游戏行业蓬勃发展,技术水平不断提升,多......
  • Spring MVC (什么是MVC ?MVC模式又是什么 ?SpringMVC 的执行流程)
    1、MVC是什么?1.1、MVCSpringMVC(全称SpringWebMVC)是Spring框架提供的一款基于MVC模式的轻量级Web开发框架,是Spring为表示层(UI)开发提供的一整套完备的解决方案。注:三层架构分为表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL),表示层则包含前台页面和后台Servlet,Sprin......
  • drauthsvr.dll丢失问题快速指南:探索解决方案以恢复受影响的应用程序
    在使用计算机的过程中,可能会遇到各种各样的DLL文件缺失问题,其中“drauthsvr.dll”是一个较为常见的案例。当系统提示“由于找不到drauthsvr.dll,无法继续执行代码”时,这通常意味着某个应用程序或游戏需要该动态链接库(DLL)文件来正常运行,但该文件要么丢失要么损坏了。本文将探讨......
  • 网站提示403 Forbidden:服务器理解请求客户端的请求,但是拒绝执行此请求怎么办
    当网站提示 403Forbidden 时,这意味着服务器理解了您的请求,但是拒绝执行此请求,通常是因为您没有足够的权限来访问所请求的资源。以下是解决 403Forbidden 错误的一些常见方法:常见原因权限问题:用户没有访问特定资源的权限。文件权限问题:服务器上的文件或目录权限设置不正......