分布式协调服务
Zookeeper是分布式协调服务框架
分布式协调技术: 主要用来解决分布式环境当中多个进程之间的同步控制,让进程有序的去访问某种临界资源,防止造成"脏数据"的后果
分布式协调技术的核心就是实现分布式锁...分布式锁
分布式锁: 为了防止分布式系统中的多个进程之间相互干扰,需要分布式协调技术对进程进行调度,这个分布式协调技术的核心就是实现分布式锁
分布式锁条件
在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行...高可用的获取锁与释放锁
高性能的获取锁与释放锁
具备可重入特性
具备锁失效机制,防止死锁
具备非阻塞锁特性
分布式锁的实现
Zookeeper
Redis
Memcached
Chubby
Redis...分布式锁的实现
分布式锁实现的三个核心要素:加锁,解锁,锁超时
Redis是单线程的
加锁
使用setnx命令
key是锁的唯一标识,按业务来决定命名
value可以设置成任意值
当一个线程执行setnx...,会在一定时间后自动释放.setnx不支持超时参数,需要额外的指令expire
----
Redis分布式锁问题:
非原子性操作:
解决方案: 通过使用set命令set(key,value,expire