用 MySQL 实现分布式锁,你听过吗?( 三 )

 
# 缺点
毕竟是利用DB来实现分布式锁,对DB还是造成一定的压力 。当时考虑使用DB做分布式的一个重要原因是,我们的应用是后端应用,平时流量不大的,反而关键的是要保证库存数据的正确性 。对于像前端库存系统,比如添加购物车占用库存等操作,最好别使用DB来实现分布式锁了 。
 
# 进一步思考
如果想锁住多份数据该怎么实现?比如说,某个库存操作,既要修改物理库存,又要修改虚拟库存,想锁住物理库存的同时,又锁住虚拟库存 。其实也不是很难,参考lock方法,写一个multiLock方法,提供多个transactionId的入参,for循环处理就可以了 。这个后续有时间再补上 。




推荐阅读