Zookeeper应用范围

本文介绍了Zookeeper的服务架构,包括客户端与服务器之间的交互过程及如何实现数据一致性。同时,还详细解释了watch机制以及Zookeeper在配置管理、集群管理等场景的应用。

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

介绍:    
        Zookeeper分为2个部分:服务器端和客户端,客户端只连接到整个ZooKeeper服务的某个服务器上。客户端使用并维护一个TCP连接,通过这个连接发送请求、接受响应、获取观察的事件以及发送心跳。如果这个TCP连接中断,客户端将尝试连接到另外的ZooKeeper服务器。客户端第一次连接到ZooKeeper服务时,接受这个连接的 ZooKeeper服务器会为这个客户端建立一个会话。当这个客户端连接到另外的服务器时,这个会话会被新的服务器重新建立。
     启动Zookeeper服务器集群环境后,多个Zookeeper服务器在工作前会选举出一个Leader,在接下来的工作中这个被选举出来的Leader死了,而剩下的Zookeeper服务器会知道这个Leader死掉了,在活着的Zookeeper集群中会继续选出一个Leader,选举出leader的目的是为了可以在分布式的环境中保证数据的一致性。如图所示



 ZooKeeper 支持watch(观察)的概念。客户端可以在每个znode结点上设置一个观察。如果被观察服务端的znode结点有变更,那么watch就会被触发,这个watch所属的客户端将接收到一个通知包被告知结点已经发生变化。若客户端和所连接的ZooKeeper服务器断开连接时,其他客户端也会收到一个通知,也就说一个Zookeeper服务器端可以对于多个客户端,当然也可以多个Zookeeper服务器端可以对于多个客户端使用:

 1.查看某zookeeper的工作模式:

 

echo stat|nc 127.0.0.1 2183
Zookeeper version: 3.3.3-1073969, built on 02/23/2011 22:27 GMT
Clients:
 /127.0.0.1:2631[0](queued=0,recved=1,sent=0)


Latency min/avg/max: 0/0/0
Received: 1
Sent: 0
Outstanding: 0
Zxid: 0x300000002
Mode: leader
Node count: 7

 

 

2.客户端连接:

zkCli.cmd -server 127.0.0.1:2182

 3.常用的命令:

set path data [version]
ls path [watch]
setAcl path acl
addauth scheme auth
connect host:port
delete path [version]
ls2 path [watch]
delquota [-n|-b] path
quit
printwatches on|off
history
getAcl path
stat path [watch]
setquota -n|-b val path
get path [watch]
close
listquota path
sync path
create [-s] [-e] path data acl
redo cmdno

 应用场景:
1.做配置管理
所有的配置文件存放到zookeeper集群上,如果发生变动那么客户端获取的时候直接获取到最新的配置信息

2.集群管理
应用集群中,我们常常需要让每一个机器知道集群中(或依赖的其他某一个集群)哪些机器是活着的,并且在集群机器因为宕机,网络断链等原因能够不在人工介入的情况下迅速通知到每一个机器。

3.命名服务
数据存储采用/path1/path2 data的方式存储
4.提供分布式锁机制

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值