微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Filter+Redis解决项目之间调用的幂等性

幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。

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

在项目远程调用中,如果接口调用失败或者是超时,客户端都会采用重试请求,但是在客户端重试的过程中都会导致服务器服务处理出现【重复消费】;一般情况下,接口产生重复消费的原因有以下2种:

1、表单重复提交;

2、调用接口过程中失败产生重试;

这时候接口调用就会产生了一个叫做幂等性的问题

对于查询删除数据的场景都有天然的幂等性,那么我们考虑幂等性处理更多是关注于新建数据与更新数据。

方法

1、发起请求带一个requestID传入到接口;

2、Filter拦截添加到Redis(分布式锁),执行完成释放;

3、服务器接收请求时先判断id是否正在处理中,如果有的话不能在执行业务逻辑,直接return 处理中;否则执行我们的业务逻辑,如果是后面在过来的话,根据业务判断,返回已处理之类的;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐