Zookeeper简析

一.Zookeeper是一个分布式协调服务,Zookeeper本身就是分布式程序,他同时为别的分布式程序服务的。

二.zk集群机制:半数机制:集群中半数以上的机器存活,集群可用。Zookeeper适合装在奇数台机器上。

三.zk特性:

1.zk是一个leader,多个follower组成集群。

2.全局数据一致,每个server保存一份相同的数据副本,clent无论连接到哪个server,数据都是一致的。

3.分布式读写,更新请求转发,由leader实施。

4.更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行。

5.数据更新原子性,一次数据更新要么成功,要么失败。

6.实时性,在一定时间范围内,client能读到最新的数据。

 

四.zk数据机构

1.层次化的目录结构。

2.每个节点在Zookeeper中叫做znode,并且有唯一的路径标识。

3.节点znode可以包含数据的子节点。

4.客户端应用可以在节点上设置监视器。

 

五.Znode有四种目录节点(默认是persistent)

1.PERSISTENT(持久化目录节点):这个目录节点存储的数据不会丢失。

2.PERSISTENT_SEQUENTIAL(顺序自动编号的目录节点):这种目录节点会根据当前已经存在的节点数自动加1,然后返回给客户端已经成功创建的节点名。

3.EPHEMERAL(临时目录节点):一旦创建这个节点的客户端与服务器端口也就是session超时,这种节点会被自动删除。

4.EPHEMERAL_SEQUENTIAL(临时自动编号节点)

5.znode的类型在创建时确定,并且之后不能在修改。

6.短暂znode的客户端会话结束时,zk会将短暂znode删除,短暂znode不可以有子节点。

7.持久znode不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除。

 

六.zk支持以下功能

1.当提供者出现断电等异常停机时,注册中心能自动删除提供者信息。

2.当注册中心重启时,能自动恢复注册的数据,以及订阅的请求。

3.当会话过期时,能自动恢复注册数据,以及订阅请求。

 

七.zk典型应用场景

1.命名服务:znode都可以由其路径唯一标识。

2.配置管理:分布式系统中,要修改某个配置,一个个实例去改,比较低效,也容易出错,将公共配置内容放到zk某个znode上,所有实例在启动时都watch这个znode的配置

3.组员管理和master选举机制:master在zk上创建server、slaves节点,并设置对该节点的watcher

4.简单互斥锁(分布式锁):分布式系统中多个进程之间的同步,由zk协调服务来协助完成同步(类比多线程抢锁)。

5.负载均衡:同一个应用或同一个服务提供方都会部署多份,达到对等服务,消费端需要在这些对等的服务器中选择一个来执行相关业务。

6.分布式通知/协调:zk中持有watcher注册与异步通知机制,不同系统对zk上同一个znode进行注册,监听znode变化,其中一个系统update了znode,那么另一个系统能够收到通知,并做出相应的处理。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值