✅加分布式锁之后影响并发了怎么办?

典型回答

很多面试官咋问关于分布式锁的问题之后,会追加一句:你这个地方用了分布式锁,那不是影响了并发度了么。这么做真的合适吗?

很多人容易被问蒙了,不知道该如何回答。确实加了分布式锁是会影响并发度的。那么他就不是一个好的方案了吗?

其实,这里是大家忽略了对于并发的理解。

我们说,加分布式锁的目的是什么?防止发生并发?这里的并发是什么并发?其实是对于共享资源的争抢并发,比如重复下单,消息重投等等的。这种情况下我们才会加分布式锁来防止出现错误。

那么这里加锁防止的并发是什么?是同一个用户的同一个行为的重复操作!

那我们通常说的系统的并发,如抗的QPS,这个并发指的是什么?是一个提供同一时段能响应的请求数,这里的请求包含同一个用户的,也包含不同用户的。

虽然我们加锁把一个用户的重复请求给拦住了。但是,正是因为我们拦住了,使得系统不需要去浪费资源处理这些重复请求,那么就可以有更多资源响应其他用户的正常请求了。

所以说,我们虽然通过加锁的方式防止了一些并发,但是我们拦截的都是我们不希望他们发生的,或者说是异常并发。但是系统的整体并发并没啥影响,反而因为我们拦了一些异常请求后,它能处理更多的正常请求,并发反而上来了。

原文: https://www.yuque.com/hollis666/xkm7k3/vdm2h4ww7c0y5pkz