Zookeeper

1、Zookepper:分布式开源框架,解决分布式协调工具。应用场景:dubbo rpc远程调用框架+zookeeper注册中心(命名服务)、发布订阅(watcher)--对zookeeper节点发生变化都会有事件通知、负载均衡、分布式通知(watcher)、master选举---主 备 投票机制、zookeeper分布式锁、进行分布式配置中心
2、zookeeper数据结构为树状结构
3、zookeeper有系欸但名称和节点内容,节点是不能重复的。节点类型分为四种:
Ⅰ 持久节点:永久的保存在硬盘上面
Ⅱ 临时节点:与生命周期绑定 连接断开,节点信息删除。
Ⅲ 持久顺序节点
Ⅳ 临时顺序节点
4、节点watcher---节点事件通知
5、可以使用事件监听获取到节点发生改变信息从而进行删除修改
6、幂等:重复。保证幂等---不允许重复
7、解决分布式情况生成订单号唯一性问题:
① 大公司 订单号提前生成,存放在redis环境中,其他服务器直接重redis服务器中获取订单号信息。
② 使用分布式锁
Ⅰ数据库实现分布式锁
Ⅱ使用缓存实现分布式锁
Ⅲ 使用Zookeeper实现分布式锁
8、实现分布式锁的原理:使用zk临时节点+时间通知
① 使用zk创建一个临时节点(“path”)
② 创建节点成功的可以拿到锁
③ 释放锁,临时节点:连接断开时,删除临时节点,释放锁
总结:在zookeeper创建临时节点,只要那个服务器能够创建临时节点成功,就能够获取到锁。其他节点没有创建成功,就等待。其他服务使用事件监听,获取节点通知,如果节点已经被删除,就可以获取锁的资源了。
9、负载均衡算法:
①权重
②IP绑定
③轮询机制
10、zookeeper实现选举策略:多台服务器,谁能够创建临时节点成功谁就为主服务器,主服务器宕机,其他服务器重新创建节点。

你可能感兴趣的:(Zookeeper)