zookeeper

本文介绍了Zookeeper,它是开源的分布式应用协调服务,保证CP。阐述了其角色如leader、Follower等,机制包括文件系统和通知机制。还说明了其用途,如命名服务、配置管理等,最后介绍了恢复和广播两种工作模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Zookeeper

Zookeeper概述

zookeeper是一个开源的分布式应用协调服务,是集群的管理者,监视集群中各个几点的状态,根据节点的状态变化做出相应。主要提供分布式解决方案,如统一命名、状态同步(分布式锁)、集群管理(分布式服务注册中心)、分布式应用配置等等。其保证了CAP理论中的CP,即一致性、容错性。
注:CAP:Consistency一致性,节点间数据一致;Availability可用性,响应速度,用户体验;Partition tolerance容错性,

zookeeper角色

leader:负载投票、决议、更新系统状态
Follower:接受客户请求并向客户端返回结果,在选leader过程中参与投票
Observer:接受客户端连接,将写请求转发给leader节点,但是不参加选leader的投票,只会同步leader的状态,所以增加Observer节点可以扩展系统提高读取速度。

zookeeper机制

  • 文件系统
    zookeeper维护一个类似文件系统的数据结构。每个子目录如为一个节点(znode),节点分为两种,持久化节点和临时节点。
    持久化节点在客户端与zookeeper断开连接之后,不会被删除,除非用户明确指定要删除这个节点;临时节点在客户端与zookeeper断开连接之后就会被删除
  • 通知机制
    客户端在zookeeper注册它关心的目录节点,当目录节点发生变化,客户端会受到zookeeper的通知。

zookeeper能做什么

  • 命名服务
  • 配置管理
    把应用的配置放在zookeeper上,保存在zookeeper的某个目录节点中,然后所有的相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序都会受到Zookeeper的通知,然后从zookeeper获取新的配置信息并应用到系统中
  • 集群管理
    机器节点增删以及master选取。
    节点增删:所有机器约定在父目录GroupMembers下创建临时目录节点,然后监听父目录节点的自己点变化信息。一旦有机器挂掉,就表明机器与zookeeper连接断开,创建的临时目录节点被删除,所有其它机器都会收到通知。
    Master选取:所有机器创建临时顺序编号目录节点,每次选取编号最小的机器作为master
  • 分布式锁
    基于zookeeper一致性文件系统实现分布式锁服务。锁服务氛围保存独占及时序控制。
    保存独占:把zookeeper上的znode看做是一把锁,所有的客户端创建/distribute_lock节点,最终创建成功的客户端拥有锁,因为是临时节点,用完自动删除就释放锁。
    时序控制:基于/distribute_lock锁,所有客户端在他下面创建临时顺序编号目录节点,和选master一样,编号最小的获取锁,用完删除。
  • 队列管理
    同步队列:当一个队列成员都聚齐时,队列才可用,在约定目录下创建临时目录节点,监听目录节点数据是否是要求的数目。
    FIFO队列:临时有序节点,入队列有编号,出队列按编号出
  • 分布式与数据控制
    zookeeper作为一个集群提供一致的数据服务,本身就会做机器之间的数据复制,因此可以用来做分布式数据复制,提高容错性,提高系统的扩展能力,提高性能。

zookeeper工作模式

zookeeper核心是原子广播,依靠ZAB实现zookeeper机制
zookeeper有两种工作模式:恢复模式和广播模式

  • 恢复模式
    当服务启动或者在领导者崩溃时,进入恢复模式,开始选主。
    follower开始投票,获取n/2+1票以上的follower节点成为leader节点,根据其它节点中存放的zxid来同步最新数据。
    当大多数的Server完成了和Leader的状态同步后,恢复模式结束。
  • 广播模式
    广播模式就是zookeeper的正常工作流程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值