《Zookeeper中间件》Zookeeper的应用场景

前言

Zookeeper到底能为我们的程序解决一些什么问题呢?

应用场景

1. 分布式配置中心

 

1.1通过Zookeeper的watch监听来实现各个集群节点的配置修改,不用再一台台服务器单独进行修改。

1.2使用zookeeper的持久化节点来实现配置保存。

2. 分布式锁

2.1.APP1 获取锁的时候,创建节点node0000001,APP2 并发获取锁的时候,创建节点node0000002,APP3 并发获取锁的时候,创建节点node0000003.

2.2.然后APP1判断自己获取到的节点是不是最小的,如果是则获取锁成功,APP2,APP3判断自己的节点都不是最小的所以等待。

2.3.APP2获取了node0000002所以APP2需要监听比自己小的node0000001什么时候消失,消失APP2就获取锁。 APP获取锁的逻辑和APP2一致。

2.4.实现zookeeper锁的开源框架有Curator。

3. 注册中心

3.1. 各个APP服务都将自己的ip和端口注册到Zookeeper的节点上面,这个节点是临时的,服务消息节点也会消失,各个服务都需要GSV来表示自己。

3.2. APP服务之间的互相调用,通过Zookeeper去找到对方的服务的地址,然后通过GSV和方法名具体找到实际方法。

3.3. zookeeper只是提供了节点的特性,实现以上功能的框架有dubbo。

总结

以上是zookeeper最常用的几种方式,zookeeper还可以有很多其他的用处,利用他的watch机制和节点特性。

原文地址:https://www.cnblogs.com/jssj/p/14018998.html