Zookeeper
mayday-code
这个作者很懒,什么都没留下…
展开
-
什么是分布式锁
1.分布式锁分布式锁一般用在分布式系统或者多个应用中,用来控制同一任务是否执行或者任务的执行顺序。在项目中,部署了多个tomcat应用,在执行定时任务时就会遇到同一任务可能执行多次的情况,我们可以借助分布式锁,保证在同一时间只有一个tomcat应用执行了定时任务。2.分布式锁的实现方式(1).使用redis的setnx()和expire()(2)使用redis的getset()(3)使用zookeeper的创建节点node(4)使用zookeeper的创建临时序列节点3.使用redis的setnx()和ex原创 2021-10-06 16:05:56 · 332 阅读 · 0 评论 -
Redis与Zookeeper实现分布式锁的区别
zk分布式锁,就是某个节点尝试创建临时znode,此时创建成功了就获取了这个锁;这个时候别的客户端来创建锁会失败,只能注册个监听器监听这个锁。 释放锁就是删除这个znode,一旦释放掉就会通知客户端,然后有一个等待着的客户端就可以再次重新加锁。 redis分布式锁,其实需要自己不断去尝试获取锁,比较消耗性能 zk分布式锁,获取不到锁,注册个监听器即可,不需要不断主动尝试获取锁,性能开销较小 另外一点就是,如果是redis获取锁的那个客户端bug了或者挂了,那么只能等待超时时间之后才能释放锁;而zk的话,因为原创 2021-10-06 16:02:17 · 103 阅读 · 0 评论