Java后端接口幂等的方案
admin
2024-03-09 05:51:29

原文网址:Java后端接口幂等的方案_IT利刃出鞘的博客-CSDN博客

简介

        本文介绍Java后端接口幂等的方案。

        接口幂等也是Java后端面试中常见的问题。

幂等的含义

        对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的。

        对于查询操作,它自然是幂等的,不会对系统资源造成影响。

        对于添加和修改操作,就要控制幂等性。

为什么需要幂等

以创建订单为例进行说明:

        一个订单创建接口,第一次调用超时了,然后调用方重试了一次。虽然第一次超时了,但是实际可能创建成功了,再次调用接口重试,这时就会调用2次创建接口,会创建2个订单。

        我们重试是想有一次成功的请求,如果真的减去2次库存,那就不满足需求。

何时会触发重试

        实际上,这种重试一般发生在框架中,比如:RPC框架、MQ。

幂等的方案

如下方案可以多个一起使用。

方案1:分布式锁

概述

        对这个请求的某个唯一值进行锁定。

详述

        对于保存接口,很难判断这两次请求是由于重试导致的,不好对业务加锁。解决方案有:

  1. 使用链路追踪工具的traceId,比如:skywalking
  2. 对所有的请求都添加一个唯一的id,比如雪花算法id

方案2:数据库唯一索引

例1:注册用户

        将用户名的数据库字段设置唯一索引。

例2:创建订单

        将用户名+商品id+付款状态设置唯一索引。即:用户的未付款的某种商品只能有一个。

相关内容

热门资讯

原创 尤... 书中说贾琏“况知(尤二姐)与贾珍贾蓉等素有聚麀之诮”。 贾琏和贾珍是兄弟,和贾蓉是叔侄,他既知尤二姐...
首付比例下调至30%,商业用房... 记者丨张敏编辑丨张伟贤1月15日,中国人民银行新闻发言人、副行长邹澜表示,会同金融监管总局,将商业用...
《云南法治报》头版报道:卸下心... 2026年1月13日,《云南法治报》头版报道:卸下心头石 扶正干事人——全省纪检监察机关澄清正名机制...
奇德新材:预计2025年度归母... 来源:硬码科技派1月15日,奇德新材(300995.SZ)发布2025年度业绩预告,预计全年归属于上...
21现场|现场直击!番禺宜家清... 停车场爆满、进场得排队、现场全是人……在官宣7店即将关闭后,1月15日,宜家番禺店迎来了闭店清仓活动...