资料内容:
4:分布式锁
锁:
不同线程间,操作一个资源,存在资源竞争,要用到锁。
分布式锁在进程与进程之间提供了一种互斥机制,在任何时刻,只有一个进程可以持有锁。
锁服务可以分为两类:
保持独占:
得益于ZooKeeper为我们保证了数据的强一致性。
就是所有试图来获取这个锁的客户端,最终只有一个可以成功获得这把锁。
(实现:大家都在某个节点下创建节点,只有一个成功,其它都是失败的)
控制时序:
就是所有视图来获取这个锁的客户端,最终都是会被安排执行,
只是有个全局时序了。
(实现:创建有编号节点,查询按编号排序,取最小的编号,就能得到锁)