每秒上千订单场景下,如何对分布式锁的并发能力进行优化?
起因
这一次的话题来源于我朋友的一次面试经历,在面试国内某个不错的电商公司时,面试官给他出了一个场景题:假如下单时,用分布式锁来防止库存超卖,但是是每秒上千订单的高并发场景,如何对分布式锁进行高并发优化来应对这样一个场景?
他说因为没做过什么思路,所以没有答上来;我听到后觉得还是蛮有意思的,因为如果是我作为面试官来问,我应该给的范围会更大些.
例如,让面试候选人们讲一下在同样场景下,给出解决库存超卖的各种方案,讲出优缺点以及实践,再才去聊到分布式锁这个话题.
解决库存超卖问题还是有很多技术解决方案的,比如分布式锁、悲观锁、乐观锁、Redis原子操作等等
既然面试官限定了解决方法,那就是使用分布式锁来解决,那么他的目的就是为了问一个点:在高并发场景下如何优化分布式锁的并发性能。
分布式锁这个东西保证了数据的准确性,所以面试官从这个角度问是可以接受的。
所以今天我将带大家了解面试官经常问的分布式锁等高频面试问题。
什么是分布式锁
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。那具体什么是分布式锁,分布式锁应用在哪些业务场景、如何来实现分布式锁呢?
为什么要使用它
我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的锁进行处理,并且可以完美的运行,毫无Bug!
注意这是单机应用,后来业务发展,需要做集群,一个应用需