1 什么是幂等性? 数学中:在一次元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同;在二次元运算为幂等时,自己重复运算的结果等于它自己的元素。
计算机学中:幂等指多次操作产生的影响只会跟一次执行的结果相同,通俗的说:某个行为重复的执行,最终获取的结果是相同的,不会因为重复执行对系统造成变化。
2 为什么要使用幂等性? 重复提交或者并发提交。但假如我们考虑的细致一点,比如电商系统,抽奖活动、用户反馈、订单支付、消息消费、商品评价、商品点赞等这些都是和幂等息息相关。举几个例子给小伙伴们看下:
① 用户重复下订单:当用户下单时,因为网络问题或者手速过快,导致重复下单。
② 消息重复消费:当使用 MQ 消息中间件时候,如果消息中间件发生异常出现错误未及时提交消费信息,导致消息被重复消费。
③ 抽奖活动(券):当用户参加抽奖活动需要消耗抽奖券时,如果出现并发请求导致抽奖券余额更新错误。
④ 重复提交表单:当用户填写表单提交时,可能会因为用户点多次连击提交或者网络波动导致服务端未及时响应,会导致用户重复的提交表单,就出现了同一个表单多次请求。
这些只是我们常见的一些状况,还需要根据自己的项目的实际情况进行分析,判断是否需要幂等操作,举个简单例子:运营做了一次大型活动,参与人数 10w+(每人只能给一个用户点赞冲榜),活动结束后运营需要复盘,这个时候发现一些用户给一个人点赞又多次状况。 https://blog.csdn.net/lianxiyang/article/details/116330825