2025.4.24

分布式锁是一种在分布式系统中控制资源共享的机制。它用于在高并发场景下,避免多个进程或线程同时操作同一资源造成冲突,引入分布式锁机制。分布式锁就像是在分布式环境下的一种“交通信号灯”,能够保证同一时刻只有一个进程能够获取到锁,从而对共享资源进行独占式的访问。

在分布式系统中,多个不同的进程(可能运行在不同的服务器上)会同时访问共享资源。例如,在电商系统中,多个服务实例可能同时处理库存扣减操作。如果没有有效的控制机制,就可能出现超卖等情况。分布式锁的目的是区别于JVM单机锁,即在多个JVM层之前设置的锁,这样就可以在多个机器上实现同一把锁的目的。

分布式锁的实现通常通过某些中间件实现,如Redis、Zookeeper等。当一个线程想要获取锁的时候,首先会去尝试获取锁,如果获取成功,那么就可以执行任务,如果获取失败,那么就只能等待,直到锁被释放。基于Zookeeper的分布式锁,主要来自于Zookeeper的两个机制:临时顺序节点机制和watch机制。用Redis实现分布式锁,利用的是SETNX+EXPIRE命令。

posted @ 2025-04-24 23:21  258333  阅读(20)  评论(0)    收藏  举报