当前位置: 首页 > news >正文

如何保证分布式情况下的幂等性

关于这个分布式服务的幂等性,这是在使用分布式服务的时候会经常遇到的问题,比如,重复提交的问题。而幂等性,就是为了解决问题存在的一个概念了。

什么是幂等
幂等(idempotent、idempotence)是⼀个数学与计算机学概念,常⻅于抽象代数中。

在编程中⼀个幂等操作的特点是其任意多次执⾏所产⽣的影响均与⼀次执⾏的影响相同。幂等函数,或 幂等⽅法,是指可以使⽤相同参数重复执⾏,并能获得相同结果的函数。这些函数不会影响系统状态, 也不⽤担⼼重复执⾏会对系统造成改变。例如,“setTrue()”函数就是⼀个幂等函数,⽆论多次执⾏,其结 果都是⼀样的,更复杂的操作幂等保证是利⽤唯⼀交易号(流⽔号)实现.

接⼝幂等性就是⽤户对于同⼀操作发起的⼀次请求或者多次请求的结果是⼀致的,不会因为多次点击⽽ 产⽣了副作⽤。

什么是接口的幂等性
在HTTP/1.1中,对幂等性进行了定义。它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外),即第一次请求的时候对资源产生了副作用,但是以后的多次请求都不会再对资源产生副作用。这里的副作用是不会对结果产生破坏或者产生不可预料的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。

不能保证幂等性的操作
前端重复提交表单:在填写一些表格时候,用户填写完成提交,很多时候会因网络波动没有及时对用户做出提交成功响应,致使用户认为没有成功提交,然后一直点提交按钮,这时就会发生重复提交表单请求。

用户恶意进行刷单:例如在实现用户投票这种功能时,如果用户针对一个用户进行重复提交投票,这样会导致接口接收到用户重复提交的投票信息,这样会使投票结果

http://www.lryc.cn/news/212226.html

相关文章:

  • Mybatis特殊SQL的执行
  • MyBatis-Flex(一):快速开始
  • Vue组件化
  • nodejs+python+php+微信小程序-基于安卓android的健身服务应用APP-计算机毕业设计
  • SpringCloud 微服务全栈体系(九)
  • Mybatis 多对一和一对多查询
  • MySQL的数据库操作、数据类型、表操作
  • 音视频技术开发周刊 | 317
  • 【JavaSE专栏58】“Java构造函数:作用、类型、调用顺序和最佳实践“ ⚙️⏱️
  • Ubuntu系统HUSTOJ 用 vim 修改php.ini 重启PHP服务
  • 案例分析真题-信息安全
  • envi5.3处理高分二号影像数据辐射定标大气校正
  • C语言 结构体
  • frp-内网穿透部署-ubuntu22服务器-windows server-详细教程
  • MySQL内存使用的监控开关和使用查看
  • 数据库管理-第113期 Oracle Exadata 04-硬件选择(20231020)
  • 带着问题去分析:Spring Bean 生命周期 | 京东物流技术团队
  • C语言修行之函数篇(一)tolower —— 转换为小写字母
  • 【JavaSE专栏55】Java集合类HashTable解析
  • Apollo上机实践:一次对自动驾驶技术的亲身体验
  • QTcpServer简单的TCP服务器连接
  • LeetCode热题100——双指针
  • Ubuntu ARMv8编译Qt源码以及QtCreator
  • 虚机Centos忘记密码如何重置
  • OpenGL_Learn02
  • 基于STC系列单片机实现外部中断0控制按键调节定时器0产生PWM(脉宽调制)的功能
  • vue3中 reactive和ref的区别
  • docker的安装部署nginx和mysql
  • 测试C#调用Aplayer播放视频(1:加载Aplayer控件)
  • 二叉树的遍历+二叉树的基本操作