程序地带

Java基础学习总结(167)——Java项目实践中如何实现幂等


什么是幂等性?

幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。


在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。


幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。


什么是接口幂等性?

在HTTP/1.1中,对幂等性进行了定义。它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外),即第一次请求的时候对资源产生了副作用,但是以后的多次请求都不会再对资源产生副作用。


这里的副作用是不会对结果产生破坏或者产生不可预料的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。


为什么需要实现幂等性?

在接口调用时一般情况下都能正常返回信息不会重复提交,不过在遇见以下情况时可以就会出现问题,如:


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


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


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012562943/article/details/111246023

随机推荐

Js函数对象与普通对象的区别

functionTest(word){console.log(word);}//里面的this是顶级对象window,返回值是undefined。//Test('哈哈࿰...

King.W. 阅读(831)

查处的数据如何乱序_编译乱序

经过前面三篇文章的介绍。我们应该对CPU乱序有了一定的认知。但是CPU乱序只是乱序的一部分,另一部分就是编译器乱序。我们之前提到的smp_wmb/smp_rmb/smp_mb都是CPU内...

weixin_39860849 阅读(886)

MySQL修炼之路四

1.外键(foreignkey)1.定义:让当前表字段的值在另一个表的范围内选择2.语法foreignkey(参考字段名)references主表(被参考字段名)ondelete级联动作onupdat...

Striving_For_Dream 阅读(874)

MySQL中查看数据表的最后更新时间

需求:有时候想快速查看某些历史库中的数据是否还在更新,其创建时间是什么时候,可以根据如下元数据信息.查询SQL如下:SELECT`TABLE_NAME`,`CREATE_TIM...

江畔独步 阅读(608)

逆向工程 sql_mybatis逆向生成工具,真的很好用!

逆向工程 sql_mybatis逆向生成工具,真的很好用!

点击蓝字“程序员考拉”欢迎关注!应某位朋友的要求,针对SSM系统,以及如何使用mybatis逆向生成工具做一个简单的介绍。本教程会讲解如何从零开始一步一步搭建...

熙熙鹅儿 阅读(480)

MySQL修炼之路二

1.表字段的操作1.语法:altertable表名执行动作;2.添加字段(add)altertable表名add字段名数据类型;altertable表名add字段名数据类型first;altertab...

Striving_For_Dream 阅读(575)

第四轮面试题

一、什么是mybatis?一种持久层框架,类似于JDBC访问数据库的操作,我们说JDBC使用到的对象有Connection对象,Prepared...

凌波微步_大先生 阅读(899)

MongoDB常用操作

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关...

薛定谔的博客 阅读(831)

windows系统搭建zookeeper

windows系统搭建zookeeper

安装&配置在apache的官方网站提供了好多镜像下载地址,然后找到对应的版本下载地址:http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.14...

快乐地编程 阅读(737)