0
点赞
收藏
分享

微信扫一扫

接口的幂等性设计

想溜了的蜗牛 2022-04-24 阅读 132
java

定义

接口一次请求和多次请求的结果一致。

为什么需要幂等

例如转账业务,服务A请求服务B时返回结果超时,这个时候发起重试再次请求,应该是转账一笔而不是两笔。

创建订单需要减库存,如果减库存的接口超时了,重复调用应该保证不会多减一次库存。

3. 接口超时了,到底如何处理

服务B转账接口支持幂等,服务A重新发起请求即可。
服务B转账接口不支持幂等,服务A先调用服务B的查询接口,如果查询失败则发起转账流程,如果查询成功则代表已经转账成功,继续成功流程即可。

如何设计幂等

数据库幂等

select语句是天然幂等的,无论查询多少次都不会有问题。
delete语句可以利用唯一索引的值来进行删除或逻辑删,多次请求效果一致。
insert语句需要保证幂等性。
update语句需要保证幂等性。

乐观锁

数据库新增version字段,当更新时查询

举报

相关推荐

0 条评论