Zookeeper-分布式协调管家 简单原理介绍

1 什么是zookeeper

zookeeper 可以理解成一个管家,可以用zookeeper来管理一些分布式集群。比如 一个系统有一堆服务器组成,这些服务器有统一的配置,可以用zookeeper来存储统一配置(基于回调的机制会通知到所有的server)。可以把zookeeper理解一个公共区域。也可以把zookeeper实现分布式锁。或者使用zookeeper来选主(kafka种使用zookeeper的作用)

2 zookeeper 集群构成

zk集群中有3中角色:
(1) leader:可接受读请求也可以接受写请求
(2) follower:只能接受读请求,如果有写请求,会转接给leader
(3) observer:只能接受读请求。与follower的区别是在leader挂掉后,不能参与投票选举(为了加速选举恢复过程)

3 zookeeper 存储的数据特点

zookeeper中数据存储用的是目录树结构
在这里插入图片描述
每个目录都可以看成一个node节点(每个node节点可以存储1MB)。节点有以下3种类型可以选择

在这里插入图片描述
每个node节点附带的信息
通过 get /test2 /**得到/test2目录下的数据/
在这里插入图片描述

4 zookeeper ZAB协议

当有写请求时的时候,zk集群使用ZAB协议(由paxos协议改进)来完成消息传递的一致性。
在这里插入图片描述

5 zookeeper 选主过程

在这里插入图片描述
在这里插入图片描述

6 zookeeper 使用

6.1配置管理

在这里插入图片描述
(代码太多,具体代码可看https://gitee.com/myByteWorld/zookeeper/tree/master/src/java/zookeeper/configTest)

6.2分布式锁

zk分布式锁和redis分布锁的最主要的区别:
zk分布锁:客户端被动,由zk主要回调通知
redis分布锁:客户端主动轮询锁存不不存在

在这里插入图片描述
(代码太多,具体代码可看https://gitee.com/myByteWorld/zookeeper/tree/master/src/java/zookeeper/lock)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值