聊聊接口的幂等和可重入

本文探讨了接口的幂等性和可重入概念,以解决在积分扣除和游戏机会增加过程中可能出现的问题。通过Token机制确保了即使在更新数据失败时,也能保持接口的幂等性。同时,讨论了微服务架构中幂等性的重要性,提供了简单的案例说明如何在服务间实现幂等交互。
摘要由CSDN通过智能技术生成

一.什么是接口的可重入,什么是幂等
简单来说接口的幂等就是接口可以重复调用,在调用方多次调用的时候,传入一致的参数最终返回的结果是一样的。
遇到问题:之前做过一个项目,用户通过消耗积分(调用自身的系统)来增加玩游戏的机会。当用户扣减了积分,把用户的信息更新到数据库中,返回给前端。问题:如果在更新用户信息的过程中失败,则就出现了积分扣减了,但机会数没有增加。
二.解决上述问题的方法
Token机制:
在这里插入图片描述
具体步骤:
(1)客户端请求服务器获取唯一的token
(2)服务器在生成token,返回给客户端,并且把token存到redis中,并带有过期时间(如果没有过期时间,删除的时候失败,会导致下一次进来的时候默认为已经存在token)
(3)客户端获得token
(4)客户端携带token向服务器发出请求
(5)服务器查询redis是否存在token存在则扣减积分,不存在则不扣减积分,玩游戏
(6)扣减积分(假设一定扣减成功)以后更新用户信息,如果更新成功删除token,更新失败,则不删除token.
问题1:如果用户扣减积分(假设一定扣减成功)了,更新数据的时候失败了,token仍然存在redis中。当前端进行重试的时候ÿ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值