《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机制和节点特性。
This moment will nap, you will have a dream; But this moment study,you will interpret a dream.