分布式锁实现
分布式环境下,多台机器上多个进程对一个数据进行操作,如果不做互斥,就有可能出现“余额扣成负数”,或者“商品超卖”的情况,如何实现简易分布式锁,对分布式环境下的临界资源做互斥,是今天将要讨论的话题。
二
同一进程多线程 互斥 典型的场景 生产者消费模式
1.多线程 同时抢锁
2.只有一个线程抢到 未抢到的阻塞 或者下次再抢。
3 抢到锁的线程操作资源
4释放锁。
同一进程 多线程互斥
(1)多个进程同时抢锁
(2)只一个进程抢到,未抢到的阻塞,或下次再来抢
(3)抢到锁的进程操作临界资源
(4)操作完临界资源后释放锁
分布式环境下多进程互斥
(1)多台机器上多个进程对这个锁进行争抢,例如在缓存上同时进行set key=123操作
(2)只有一个进程会抢到这个锁,即只有一个进程对缓存set key=123能够成功,不成功的进程下次再来抢
(3)抢到锁的进程对余额进行扣减
(4)扣减完成之后释放锁,即对缓存delete key=123
it大牛的分享知识网站http://www.itxuexiwang.com/