zookeeper通过watcher机制,可以实现数据的修改,删除等情况的监听

  • 可以设置观察的操作:exists,getChildren,getData

  • 可以触发观察的操作:create,delete,setData

java代码通过apache提供的api设置watcher,该watcher只能被触发一次,如果系统继续被触发,需要重新绑定。为了简化操作,可通过curator的jar包设置

watcher原理简介:

client中发起带有watcher的请求时,将watcher保存在自己的ZKWatcherManager中,server端收到请求后,将watcher保存在自己的WatcherManager中,当数据做出相应变化后,server端通过WatcherManager判断该数据是否又watcher,如果有,则向client端发出消息。client端收到信息后,根据ZKWatcherManager保存的path->Watcher做出相应回调

ZOOKEEPER之WATCHER简介的更多相关文章

  1. Zookeeper的Watcher 机制的实现原理

    基于 Java API 初探 zookeeper 的使用: 先来简单看一下API的使用: public class ConnectionDemo { public static void main(S ...

  2. Zookeeper的Watcher机制

    ZooKeeper 提供了分布式数据的发布/订阅功能, 在 ZooKeeper 中引入了 Watcher 机制来实现这种分布式的通知功能. ZooKeeper 允许客户端向服务端注册一个 Watche ...

  3. 品味ZooKeeper之Watcher机制_2

    品味ZooKeeper之Watcher机制 本文思维导图如下: 前言 Watcher机制是zookeeper最重要三大特性数据节点Znode+Watcher机制+ACL权限控制中的其中一个,它是zk很 ...

  4. 搞懂ZooKeeper的Watcher之源码分析及特性总结

    前言 本章讲ZooKeeper重要的机制,Watcher特性.ZooKeeper允许客户端向服务端注册Watcher监听,当服务端一些指定事件触发了这个Watcher,那么就会向指定客户端发送一个事件 ...

  5. zookeeper中Watcher和Notifications

    问题导读:1.zookeeper观察者什么时候调用?2.传统远程轮询服务存在什么问题?3.zk中回调服务的机制是什么?4.zk中watcher为什么不永久注册?5.什么是znode? 在阅读之前首先明 ...

  6. 转:zookeeper中Watcher和Notifications

    转自:http://www.tuicool.com/articles/B7FRzm 传统polling远程service服务 传统远程的service往往是这样服务的,服务提供者在远程service注 ...

  7. Zookeeper中Watcher监听实现增删改

    8.1 连接方法 package com.zookeeper.day01; import org.apache.zookeeper.*; import java.io.IOException; pub ...

  8. zookeeper基础学习-简介

    1.zookeeper的使命 zookeeper可以在分布式系统的协作多个任务(一个任务是指一个包含多个进程的任务),这个任务可以是为了协作或者是为了管理竞争. 协作:多个进程需要一同处理某些事情,一 ...

  9. ZooKeeper学习之路(一)—— ZooKeeper简介及核心概念

    一.Zookeeper简介 Zookeeper是一个开源的分布式协调服务,目前由Apache进行维护.Zookeeper可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调/通知. ...

随机推荐

  1. php 中 使用foreach为数组增加键值对

    php 中的 foreach 在php中,使用foreach来遍历数组的频率很高,并且其性能要高于 list() 和 each() 结合来遍历数组: 当遍历二位数组的第一层数组,并要给第二位数组增加一 ...

  2. HTTP之简析

    1. 简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本传传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议.HTTP 通常架构在 TCP 传 ...

  3. Arcgis python输出当前窗口

    import arcpy mxd = arcpy.mapping.MapDocument("CURRENT") mxdfile=arcpy.GetParameterAsText(0 ...

  4. 订阅发布模式eventEmiter

    // 订阅发布模式 class EventEmitter { constructor() { this._events = {}; } on(name, callback) { if (this._e ...

  5. linux下如何查看某个容器的详细信息?

    答: 使用docker inspect <CONTAINER ID>即可

  6. LC 583. Delete Operation for Two Strings

    Given two words word1 and word2, find the minimum number of steps required to make word1 and word2 t ...

  7. 软件-设计-Adobe-Adobe XD:百科

    ylbtech-软件-设计-Adobe-Adobe XD:百科 创建线框.设计.创建原型.展示以及共享适用于 Web.移动设备和语音等的卓越体验 - 以上操作在一款应用程序中即可完成.XD 面向需要进 ...

  8. flutter 安卓再次点击返回退出应用

    安卓手机点击实体或者虚拟返回键,会返回上一级,当到达最上层是,点击返回退出应用,为了防止用户连续点击返回,导致应用退出,在用户点击返回到最上层时,如果再次点击返回,第一次不退出,并提升用户再次点击退出 ...

  9. PCL中有哪些可用的PointT类型(1)

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=266 为了涵盖能想到的所有可能的情况,PCL中定义了大量的point类型.下 ...

  10. openstack部署glance

    一.建立glance数据库并且给权限设置第三方登录 mysql -uroot -p0330 CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance ...