前言
用户连续快速点击某个提交按钮,前端没有针对性处理,就会导致连续发送多次请求,假如一次命中服务器A上微服务,另一次命中服务器B上的微服务, 那么就会生成了两个内容完全相同的记录数据,只是 id号不同而已,这样数据库也出现了脏数据。
对于这样的现象,可以说是非常常见。那么在分布式系统中如何防止用户的重复提交操作?——我们需要做一定的防止重复提交和数据防重处理。
今天就来简单的说下,在系统中如何防止重复提交和对数据库进行防重处理。
一、重复提交解决思路
思路:相同的请求在同一时间只能被处理一次。
- 如果是单体服务器,可以通过多线程并发的方式来解决。
- 如果是分布式系统,采用了多服务器负载均衡的,则得采用分布式锁。
由于之前就讲过分布式锁 的运用了 ,而且也说过了基于ip的令牌桶限流 方案,所以今天就只做一个简单的防止重复提交方案