zookeeper监听器原理的详解

1)监听原理详解:

1)首先要有一个main()线程

2)在main线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connet),一个负责监听(listener)。

3)通过connect线程将注册的监听事件发送给Zookeeper。

4)在Zookeeper的注册监听器列表中将注册的监听事件添加到列表中。

5)Zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程。

6)listener线程内部调用了process()方法。

2)常见的监听

(1)监听节点数据的变化:

get path [watch]

(2)监听子节点增减的变化

ls path [watch]

3)Java客户端实现监听

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • zookeeper服务优化的一些建议

    1.快照文件和事务日志文件分别挂在不同磁盘.zoo.cfg文件中,dataDir是存放快照数据的,dataLogDir是存放事务日志的.zookeeper更新操作过程:先写事务日志,再写内存,周期性落到磁盘(刷新内存到快照文件).事务日志的对写请求的性能影响很大,保证dataLogDir所在磁盘性能良好.没有竞争者. 2. 默认jvm没有配置Xmx.Xms等信息,可以在conf目录下创建java.env文件(内存堆空间一定要小于机器内存,避免使用swap) export JVMFLAGS="-X

  • 使用Zookeeper分布式部署PHP应用程序

    Zookper是一种分布式的,开源的,应用于分布式应用的协作服务.它提供了一些简单的操作,使得分布式应用可以基于这些接口实现诸如同步.配置维护和分集群或者命名的服务.Zookper很容易编程接入,它使用了一个和文件树结构相似的数据模型. 虽然ZooKeeper是一个Java应用程序,但C也可以使用.这里就有个PHP的扩展,你可以从PECL中下载,或从GitHub中直接获取PHP-ZooKeeper. 要使用该扩展你首先要安装ZooKeeper.可以从官方网站下载. $ tar zxfv zook

  • windows下zookeeper配置java环境变量的方法

    先找到文件 zookeeper的bin目录下编辑zkEnv.cmd 修改如下图 如果你的系统有多个JAVA_HOME类型的系统变量  则需要在该文件中指定用哪一个,并且还要修改windows的jdk环境变量 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • Zookeeper和Eureka哪个更好?

    Zookeeper和Eureka哪个更好? 1.CAP理论 一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求 C:数据一致性:保证所有数据都要同步 A:可用性:要保证任何时候请求数据都能够正常响应 P:分区容错性:当网络通信发生故障时,集群仍然可用,不会因为某个节点挂了或者存在问题,而影响整个系统的正常运作 对于分布式系统来说,出现网络分区是不可避免的,因此分区容错性是必须要具备的,也就是说,CAP三者,P是必须的 2.Zookeeper保证CP原则 当向注册中心查询服务列

  • linux上安装zookeeper 启动和关闭的教程

    1.zookeeper运行需要java环境所以必须先装JDK 2.下载,解压 #wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz #tar -zxvf zookeeper-3.4.12.tar.gz 3.文件自己选择安装目录,接着进入conf,复制zoo_sample.cfg改名为zoo.cfg # cp  zoo_sample.cfg zoo.cfg 4.编辑zoo

  • zookeeper概述图文详解

    1.1 概述 分布式系统:分布式系统指由很多台计算机组成的一个整体!这个整体一致对外,并且处理同一请求!系统对内透明,对外不透明!内部的每台计算机,都可以相互通信,例如使用RPC/REST或者是WebService!客户端向一个分布式系统发送的一次请求到接受到响应,有可能会经历多台计算机! Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目,多用作为集群提供服务的中间件! Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责

  • zookeeper节点类型详解

    1)Znode有两种类型: 短暂(ephemeral):客户端和服务器端断开连接后,创建的节点自己删除 持久(persistent):客户端和服务器端断开连接后,创建的节点不删除 2)Znode有四种形式的目录节点(默认是persistent ) (1)持久化目录节点(PERSISTENT) 客户端与zookeeper断开连接后,该节点依旧存在 (2)持久化顺序编号目录节点(PERSISTENT_SEQUENTIAL) 客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper

  • 使用JMX监控Zookeeper状态Java API

    一.背景 上一篇通过Java自带的JConsole来获取zookeeper状态.主要有几个不方便的地方,zk集群一般会部署3或者5台,在多个JConsole窗口中切换比较麻烦,各个zk服务及历史数据之间,不能直观比较.一般会做一个WEB管理页面来展示集群状态,设置报警阀值来做报警. 二.JVM平台提供Mbeans 在Java5.0以上版本,有一组API可以让Java应用程序和允许的工具监视和管理Java虚拟机(JVM)和虚拟机所在的本机操作系统.该组API在 java.lang.manageme

  • Zookeeper连接超时问题与拒绝连接的解决方案

    今天在工作中突然遇到这个问题,开始郁闷得不行,查阅了很多资料才解决.话不多少先上图 ①解决连接超时问题 1:在Linux下输入命令ifconfig -a   看看是否ip地址输入错误 2:关闭Linux防火墙,输入  chkconfig iptables off 命令 ②解决拒绝连接问题 报错图忘截了,不好意思,还是直接说解决方案吧! 将前面的127.0.0.1删掉,输入:wq 命令保存就行了,原因是与输入的地址发生冲入,所以拒绝连接. 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的

  • 从dubbo zookeeper注册地址提取出zookeeper地址的方法

    用途 项目中使用了 dubbo,注册中心使用的 zookeeper,使用 zookeeper 实现了一个简单的分布式锁(依赖 curator),因为配置文件存在 dubbo.registry 配置,为了直接使用这个地址来创建分布式锁,写了一个简单的方法来提取 zookeeper 地址. 效果 dubbo.registry 有多种配置方式,支持所有情况,下面是常见的例子和提取结果: zookeeper://localhost:2181 zookeeper://localhost:2181?clie

随机推荐