Zookeeper集群典型分布式应用场景

Posted handwrit2000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper集群典型分布式应用场景相关的知识,希望对你有一定的参考价值。

 

1.配置管理——需求是数据一致性

ZooKeeper 采用的是推拉相结合的方式:客户端向服务端注册自己需要关注的节点,一旦该节点的数据发生变更,那么服务端就会向相应的客户端发送Watcher事件通知,客户端接收到这个消息通知之后,需要主动到服务端获取最新的数据。

 

2.命名服务

服务需要被访问,如服务提供的uri,但是uri是易变的,所以需要给变化的uri取一个固定的名字,每次通过这个名字来获取服务的uri。

         Zookeeper让服务可以创建一个节点,节点名为服务名,数据为uri,通过这种方式来完成命名。

 

3.负载均衡

1)负载注册/更新——负载ip:port可以保存到zookeeper的临时节点数据中,并具有一致性

2)负载健康检查——对于下线的负载,由于其创建的临时节点自动删除,ip:port数据也会一并删除

3)负载分派——获取负载节点下的所有临时节点,使用负载均衡算法选取一个负载

 

4.master选举

客户端集群每天都会定时往ZooKeeper. 上创建- - 个临时节点,例如/master_ election/

2013-09- 20/binding。在这个过程中,只有一个客户端能够成功创建这个节点,那么这个;

客户端所在的机器就成为了Master.同时,其他没有在ZooKeeper.上成功创建节点的客

户端,都会在节点/master_ election/2013-09-20. 上注册一个子节点变更的Watcher, 用于

监控当前的Master机器是否存活,一旦发现当前的Master挂了,那么其余的客户端将

会重新进行Master选举。

 

5.分布式锁

在需要获取排他锁时,所有的客户端都会试图通过调用create()接口, 在

/exclusive_ lock 节点下创建临时子节点/exclusive_ lock/lock. 在前面几节中我们也介绍了,

ZooKeeper会保证在所有的客户端中,最终只有一个客户端能够创建成功,那么就可以

认为该客户端获取了锁。同时,所有没有获取到锁的客户端就需要到/exclusive_lock节

点上注册一一个子节点变更的Watcher监听,以便实时监听到lock节点的变更情况。

以上是关于Zookeeper集群典型分布式应用场景的主要内容,如果未能解决你的问题,请参考以下文章

ZooKeeper 典型的应用场景——及编程实现

Zookeeper 的典型应用场景 ?

ZooKeeper 典型应用场景有哪些?

Zookeeper应用场景

Zookeeper应用场景

Zookeeper应用场景