1、性能反面,zk优于redis(redlock算法)
redis 会尝试在所有master上创建锁,但是只对一部分节点创建锁,个数为(n/2+1)个,获取一个毫秒级时间戳,设置创建时间,如果创建时间小于超时时间就视为成功,如果创建失败就顺序删除。只要创建好一个分布式锁,就要不断轮循这个锁什么时候释放。
zk只会对已经创建分布式锁的系统进行创建监听,所以性能消耗很小
2、运行出现错误
redis创建锁的节点如果挂了,那就只能等待超时才能释放锁
zk因为是创建临时的lockNode,所以挂了就释放了
3、操作
redis使用起来相对麻烦,还要计算时间还要遍历上锁等
zk相对清晰简单的多
ps:纯属个人理解做了笔记
本文对比了Zookeeper与Redis在分布式锁实现上的差异。ZK在性能上优于Redis,因仅对已创建锁的系统监听;而Redis需在多数节点上创建锁,且节点故障时锁释放依赖超时机制。ZK的锁机制更简洁,Redis则相对复杂。
855

被折叠的 条评论
为什么被折叠?



