Zookeeper
拾荒路上的开拓者
可能出错的地方,一定会出错
展开
-
实现一个原语:通过Zookeeper实现锁
关于Zookeeper的功能,一个简单的例子就是通过锁来实现临界区域。我们知道有很多形式的锁(如:读/写锁、全局锁),通过Zookeeper来实现锁也有多种方式。这里讨论一个简单的方式来说明应用中如何使用Zookeeper,不再考虑其它形式的锁。 假设有一个应用由n个进程组成,这些进程尝试获取一个锁。再次强调,Zookeeper并未直接暴露原语,因此我们使用Zookeeper的接口来管理znod...原创 2019-09-23 22:37:29 · 201 阅读 · 0 评论 -
Zookeeper:一个主-从模式例子的实现
Zookeeper主-从模式的模型中包括三个角色: 主节点:负责监视新的从节点和任务,分配任务给可用的从节点 从节点:通过系统注册自己,以确保主节点看到它们可以执行任务,然后开始监视新任务 客户端:创建新任务并等待系统的响应 1 主节点角色 因为只有一个进程会成为主节点,所以一个进程成为Zookeeper的主节点后必须锁定管理权。为此,进程需要创建一个临时znode,名为/master: ...原创 2019-09-25 22:32:51 · 391 阅读 · 0 评论 -
ZooKeeper如何设置监视点
Zookeeper的API中的所有读操作:getData、getChildren和exists,均可以选择在读取的znode节点上设置监视点。使用监视点机制,需要实现Watcher接口类,实现其中的方法如下: public void process(WatchedEvent event); WatchedEvent数据结构包括以下信息: Zookeeper会话状态(KeeperState)...原创 2019-10-09 22:06:30 · 435 阅读 · 0 评论