zookeeper基本概念

Zookeeper

1、概念

分布式、高性能、开源的分布式系统的协调服务,是一个分布式数据一致性的解决方案,为分布式应用提供高性能、高可用且具有严格属性访问控制能力的分布式协调存储服务。

2、应用场景

1)维护配置信息
zab协议保证一致性
2)分布式锁服务
3)集群管理
集群中节点加入\移除情况同步给其他节点,以及时调用存储和计算等任务的分配和执行
4)生成分布式唯一ID

3、设计目标

1)高性能
全量数据存储在内存中,直接发起与客户端的所有非事务请求,尤其适合用于以读为主的应用场景
2)高可用
ZK以集群的方式对外提供服务,一般以奇数个节点3-5台节点,
每台机器都会在内存中维护当前服务器的状态,且互相通信,
超过半数节点正常,集群即正常
3)严格访问数据
对client的每个更新请求,ZK都会分配一个全局唯一的递增编号,
编号体现事务操作的先后顺序

二、结构

zkCli.sh -server 10.24.103.11:24002/hbase

1、数据结构

1)ZK每个节点称为一个Znode,每个Znode默认存储1M数据,每个Znode都可以通过其路径唯一标识
2)一个Znode可分为3部分:
1>节点的数据,即znode data(节点path,节点data的关系)
2>节点的子节点
3>节点的状态stat,用来描述当前节点的创建、修改记录,包括cZxid、ctime等

2、节点类型

分为临时节点和永久节点,节点类型在创建时确定且不能再改变

1>临时节点
会话(session)结束,临时节点会删除,也可手动删除,
虽然每个临时Znode都会绑定到一个客户端会话,但他们对所有的client都是可见的,
临时的节点不允许拥有子节点
2>永久节点
持久化节点,生命周期不依赖于会话,只有在客户端执行删除操作时才能删除

三、zookeeper的选举制度

1、特点:

1)半数以上存活即可服务
2)一个leader和多个followwe

2、选举方式

1)新集群
依据ID,启动顺序过半数即成为leader
2)非全新集群
因素:数据ID、服务器ID、逻辑时钟
1>逻辑时钟
这个值从0开始,每次选举必须一致。小的选举结果被忽略,
	重新投票(即除去选举次数不完整的服务器)
2>数据ID
数据新的version大,每次数据更新都会更新version,数据id大的胜出
(即选出数据最新的服务器)
3>服务器ID
即myid。数据id相同的情况下,服务器id大的胜出(数据相同情况下,
选服务器ID最大的,即权重最大的服务器)

四、基于zookeeper的hdfs高可用

五、基于zokkeeper的yarn高可用

yarn的RM状态信息可以直接写入ZK上,依赖ZK进行准备选举

六、基于zookeeper的kafka选举

1、zk记录了所有broker的存活状态,broker定期向zk发送心跳上报状态,
	zk维护了一个正在运行且属于集群的broker列表
2、zk负责Controller的选举
3、记录ISR
4、kafka允许client有不同的生产和消费限额,信息保存在zk中
5、保存所有node和topic相关配置信息
6、保存topic的offset值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zookeeper是一个开源的分布式应用程序协调服务,它提供了一组简单的API,可以帮助开发人员实现分布式系统中的一些关键功能,如配置管理、分布式同步、命名服务、集群管理等。下面是Zookeeper的一些基本概念和功能: 1.节点:Zookeeper中的数据存储单位,它类似于文件系统中的目录或文件。每个节点都有一个路径,路径由斜杠分隔的一系列字符串组成。 2.版本:每个节点都有一个版本号,用于标识节点数据的版本。Zookeeper会为每次更新操作递增节点的版本号。 3.会话:Zookeeper客户端与服务器之间的连接称为会话。客户端可以通过会话与Zookeeper进行交互,包括创建、更新和删除节点等操作。 4.观察器:Zookeeper支持观察器机制,即客户端可以注册一个观察器来监视一个节点的变化。当节点发生变化时,Zookeeper会通知客户端。 5.集群:Zookeeper可以作为集群管理工具,用于维护各个节点之间的状态同步和故障转移。 6.分布式锁:Zookeeper提供了一种分布式锁机制,可以用于控制多个进程或线程之间的访问顺序。 7.命名服务:Zookeeper可以作为命名服务,提供一种统一的命名空间,用于管理和查找节点。 总的来说,Zookeeper提供了一种可靠的、高效的、可扩展的分布式应用程序协调服务,可以简化开发人员在分布式系统中的编程工作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值