标签:网络传输 分布式锁 加锁 意思 用户 问题 机制 场景 load
【本文完善中...】
无论是http接口,还是rpc接口,防重复提交(接口防重)都是绕不过的话题。
重复提交与幂等,既有区别,又有联系。幂等的意思是,对资源的一次请求与多次请求,作用是相同的。HTTP的POST方法是非幂等的。如果程序处理不好,重复提交会导致非幂等,引起系统数据故障。防重复提交,要通过技术手段来实现。保证幂等性既要通过技术手段来实现,又要有对业务数据的验证。
常见的B/S场景的重复提交,用户手抖或因为网络问题,服务端在极短时间内收到同样的http请求。
rpc接口的重复提交,一种是不恰当的程序调用,即程序漏洞导致重复提交。在一种,比如拿dubbo来说,因为网络传输问题,会导致重试调用。
防重提交的方案,常见的是加锁。java单体应用可以用语言本身的synchronized锁机制。分布式系统,一般是借助redis或zk等分布式锁。
标签:网络传输 分布式锁 加锁 意思 用户 问题 机制 场景 load
原文地址:https://www.cnblogs.com/buguge/p/13256485.html