Zookeeper的应用场景

1.统一的命名服务

国产的RPC框架Dubbo,使用ZooKeeper作为服务的注册中心。首先服务提供者在启动时会启动一个Server,并且会将服务的信息以临时节点的形式注册到ZooKeeper中,一旦服务提供者出现意外,它注册临时节点会自动删除。服务消费者在初始化是会自动在指定的ZNode注册子节点数量改变的监视器,一旦发现子节点数量发生改变,即触发通知。使用最新的调用地址列表替换历史的调用地址列表。结论:Apache Dubbo框架引入注册中心的原因就是为了保证服务消费者能够自动感知服务提供方信息的改变

在这里插入图片描述

2.分布式配置中心

将配置信息保存在Zookeeper的某个目录节点中,然后将所有需要修改的应用机器监控配置信息的状态,一旦配置信息发生变化,每台应用机器就会收到Zookeeper的通知,然后从Zookeeper获取新的配置信息应用到系统中。

在这里插入图片描述

3.集群选举、

利用ZooKeeper有两个特性,就可以实时另一种集群机器器存活性监控系统:
1.客户端在节点 x 上注册一个Watcher,那么如果 x?的子节点变化了,会通知该客户端。
2.创建EPHEMERAL类型的节点,一旦客户端和服务器的会话结束或过期,那么该节点就会消失

在这里插入图片描述

4.分布式锁

分布式锁主要是为了解决在分布式系统中对临界资源处理的线程安全问题。

在这里插入图片描述

在这里插入图片描述
需要获得锁的Server创建一个EPHEMRAL_SEQUENTIAL(临时顺序节点),然后调用getChildren方法,获取当前的目录节点列表中最小的目录节点是不是就是自己创建的目录节点,如果是自己创建的,那么它就获得了这个锁,如果不是就调用exists(String path,boolean watch)方法监控Zookeeper上目录节点的变动,一直到自己创建的节点是列表中最小编号的目录节点,从而获得锁,释放锁很简单,只要删除前面它自己所创建的目录节点就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值