Zookeeper应用范围

介绍:    
        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的工作模式:

 

Java代码  收藏代码
  1. echo stat|nc 127.0.0.1 2183  
  2. Zookeeper version: 3.3.3-1073969, built on 02/23/2011 22:27 GMT  
  3. Clients:  
  4.  /127.0.0.1:2631[0](queued=0,recved=1,sent=0)  
  5.   
  6.   
  7. Latency min/avg/max: 0/0/0  
  8. Received: 1  
  9. Sent: 0  
  10. Outstanding: 0  
  11. Zxid: 0x300000002  
  12. Mode: leader  
  13. Node count: 7  

 

 

2.客户端连接:

 

Java代码  收藏代码
  1. zkCli.cmd -server 127.0.0.1:2182  

 3.常用的命令:

 

Java代码  收藏代码
  1. set path data [version]  
  2. ls path [watch]  
  3. setAcl path acl  
  4. addauth scheme auth  
  5. connect host:port  
  6. delete path [version]  
  7. ls2 path [watch]  
  8. delquota [-n|-b] path  
  9. quit  
  10. printwatches on|off  
  11. history  
  12. getAcl path  
  13. stat path [watch]  
  14. setquota -n|-b val path  
  15. get path [watch]  
  16. close  
  17. listquota path  
  18. sync path  
  19. create [-s] [-e] path data acl  
  20. redo cmdno  

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

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

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

posted on 2013-09-03 12:46  5彩石头  阅读(341)  评论(0)    收藏  举报

导航