原文链接:http://hongweiyi.com/2012/11/zookeeper-ephemeral-nodes-experience/

Zookeeper Ephemeral结点使用心得

公司里面在拿Zookeeper做命名服务,通过使用ZK,前端只需要根据指定的ZK地址获得相应的资源或服务的后端服务器地址即可,而后端服务器需要做的仅仅是将自己的地址注册到ZK上作为一个Ephemeral结点即可。(虽然是挺方便后端扩容,但是我个人不太建议直接上ZK,否则开发成本会增加)

P.S.: Ephemeral结点在Apache Zookeeper中是一个临时结点,这些结点只要创建它的结点session不挂,它就一直存在,当session中止了,结点也就删除了。

在开发的时候遇到了一个奇怪的问题,当某个后端快速重启之后,该后端的结点信息过一段时间后会被删除,这样就导致了后端服务永远无法被前端访问到。

查了资料后得知,如果在你的session中,ephemeral结点不是由你创建的,你的session就不会拥有该结点,所以当拥有该结点的session终止(expire)了,该结点也就销毁了。那么,如果不是你显式的删除该结点的话,就只能由ZK帮你终止它,在会话超时之后ZK就自动删除结点。如果在会话还未超时的过程中(一般是30s),你重启后端服务器的话,就会导致我所说的情况。

解决方案:

Apache提供了几个patch,也有人提供了一些解决方案,均是显式的终止session。但是后端服务器挂了,显式终止一般是没用的。找到的这个方法是比较靠谱的,那就是在创建结点前,先删除之前的结点:

1. try {

2.   zk.delete(path)

3. } catch {

4.   e: NoNodeException => // do nothing

5. }

6. zk.create(path, data, CreateMode.EPHEMERAL)

参考资料:

A Gotcha When Using ZooKeeper Ephemeral Nodes

ephemerals handling after restart

转载于:https://www.cnblogs.com/linlemo/p/4807178.html

原文链接:http://hongweiyi.com/2012/11/zookeeper-ephemeral-nodes-experience/Zookeeper Ephemeral结点使用心得公司里面在拿Zookeeper做命名服务,通过使用ZK,前端只需要根据指定的ZK地址获得相应的资源或服务的后端服务器地址即可,而后端服务器需要做的仅仅是将自己的地址注册到ZK上作为一个Ephe... HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。 (二)HTML节点: HTML文档中的每个成分都是一个节点。 整个文档是一个文档节点(Document) 每个 HTML 标签是一个元素节点(Element) 1、 Zookeeper 的节点类型 ​ 持久(Persistent):客户端和服务器端断开连接后,创建的节点不删除 ​ 短暂( Ephemeral ):客户端和服务器端断开连接后,创建的节点不删除 ​ (1)吃就换目录节点 ​ 客户端与 Zookeeper 断开连接后,该节点依旧存在 ​ (2)持久化顺序编号目录节点 ​ 客户端与 Zookeeper 都拿开连接后,该节点依旧存在,只是 Zookeeper 给该节点名称进行顺序编号 ​ (3)临时目录节点 ​ 客户端与
zookeeper 由于其node path的唯一性,也具备实现分布式锁的天然条件。同时得益于其watch机制在实现起来更方便。 本文基于golang实现的 zookeeper 分布式锁,仅供参考。 使用 的第三方library是github.com/samuel/go- zookeeper /zk . GetLock: GetLock相对来说比较复杂。 Zookeeper 在create key的时候可以选择不同模式: currPath, err := conn.Create(zkKey, nil, 3, zk.Worl
带着问题撸源码系列- zookeeper -临时节点[ ephemeral ]是怎么弄的?我写了一堆临时节点为啥我一掉线就全没了? 可能是有线程维护着,每个session有一个临时节点列表,一旦客户端不再发心跳就全干掉 debug run server 1(follower) debug server 2 (leader) client 请求server2: create -e /t1 利用Watcher机制和 ZooKeeper EPHEMERAL _SEQUENTIAL节点的特点,实现分布式锁。 实现原理: EPHEMERAL _SEQUENTIAL该类节点具有顺序递增特点,不会持久化到磁盘,在线程执行完毕后,会自动删除。 Watcher机制使得在节点被删除时,能够获得通知,并且能接收到被push过来的消息。 分布式锁:在多进...
1.zk中有 ephemeral 临时节点、persistent持久化节点、 ephemeral 顺序节点、persistent顺序节点 四种节点 2. ephemeral 临时节点的删除由两种方式触发:a.主动删除 b.session过期 3.zk采用的是简化的paxos协议, 使用 zab协议( zookeeper 原子广播协议)。在仲裁模式(quorum)下,新节点加入、重启时候为LOOKING状态,若没有l...
Zookeeper 是什么 Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用主要是用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理 简单的说,zo
使用 Curator也可以简化 Ephemeral Node (临时节点)的操作。 临时节点驻存在 ZooKeeper 中,当连接和session断掉时被删除。 比如通过 ZooKeeper 发布服务,服务启动时将自己的信息注册为临时节点,当服务断掉时 ZooKeeper 将此临时节点删除,这样client就不会得到服务的信息了。 Persistent Ephemeral Node类代表临时节点。 通过下...
ZooKeeper 节点是有生命周期的,这取决于节点的类型。在 ZooKeeper 中,节点类型可以分为持久节点(PERSISTENT )、临时节点( EPHEMERAL ),以及时序节点(SEQUENTIAL ),具体在节点创建过程中,一般是组合 使用 ,可以生成以下 4 种节点类型。 持久节点(PERSISTENT) 所谓持久节点,是指在节点创建后,就一直存在,直到有删除操作来主动
接触zk是2年前了,最近工作又比较依赖于zk,所以准备起个系列文章,系统的总结下。 zookeeper 是一个分布式的用于协调的服务,起源于Hadoop中的一个组件。分布式系统可以用 zookeeper 实现统一命名服务、配置管理、分布式锁、集群管理等功能。 zk维护的数据结构类似于操作系统中的文件系统,每一个item都是一个节点(znode),节点上存储二进制的数据或不存,如...
第一: znode自身的数据内容; 第二: znode 节点的状态信息 stat info, 来存储数据的变化 ACL的变化和时间戳; 第三: znode 的ACL 信息(权限信息). 斜线分隔例如: /Zoo/Duck 没有相对路径 数据发生变化时,版本号会递增 可以对Znode中的数据进行读写操 ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 简单来说 zookeeper =文件系统+监听通知机制。 Zookeeper 入门看这篇就够了 推荐docker dock...
zkClient在原生API的基础上进行了封装,简化了 zookeeper 的复杂性。 创建客户端方法:ZKClient(Arguments) 参数1:zkServers, zookeeper 服务器地址,用“,”分隔。 参数2:sessionTimeout,会话超时时间,单位毫秒,默认为30000ms。 参数3:connectionTimeout,连接超时时间。 参数4:IZkConnecti
homo114514echou: 《大英百科全书2007》创始于1768年,现在美国出版,是一部历史悠久,连续修订,享誉世界的权威性、学术性综合百科全书,内容涵盖政治、经济、哲学、文学、艺术、社会、语言、宗教、民族、音乐、戏剧、美术、数学、物理、化学、历史、地理、地质、天文、生物、医学、卫生、环保、气象、海洋、新闻、出版、电视、广播、广告、军事、电脑、网络、航空、体育、金融等二百多个学科。 《大英百科全书2007》 大英百科全书的悠久历史,注定了它在数字化的犹豫。它一直以来都是靠书籍发行得以生存并巩固独一无二的权威性。大英百科全书2006开始,大英百科全书看到了百科全书只有一个未来,那就是人们不仅仅需要一套百科全书摆在家里充门面,而是迫切需要不断地学习充电,赶上时代发展的步伐。最值得一提的是大英百科全书2006版引入了BrainStormer,把满天繁星的知识点编织成一个个迷人的星座图。人们不仅能从一个知识点链接到另一个知识点,而且能让知识发散性思维,从而引发灵感,推动创造力。 《大英百科全书2007》版更引入了 Virtual Notecards,让人们能更好的整理知识,提高学习效率。大英百科全书在2006版已经青出于蓝而胜于蓝了。 大英百科全书与Microsoft Encarta的比较: Microsoft Encarta的诞生,确实让我眼前一亮。它完完全全把文字性的工具书变成了一个活泼生动的多媒体交互软件。有视频动画,有3D虚拟观光,有游戏测验,有网址链接。但是Encarta从2006版起,就要屈身于所谓的Student,与Word等等软件结合起来,组成一个供学生做作业,写论文的平台。本来Encarta所用的文字就很浅显生动,让人们能轻松学到新知识,但是现在,我很怀疑Encarta能否电子百科全书的代名词,总觉得它越来越幼稚了。孩子是未来,激发他们对万事万物的好奇心,引导他们探索未知的广阔世界,这是个神圣的荣耀。但是,成人更需要一本好的电子百科全书,需要一个整理知识,扩展知识的平台。 Encyclopedia Britannica 大英百科全书的历史 西元1751年到1780年,法国大学者狄德罗 (Denis Diderot 1713-1784),网罗了当时启蒙时代的184位学者专家以三十年时间编印完成的「科学艺术及专业知识百科全书」,是全世界第一套「现代百科全书」. 大不列颠百科全书Encyclopaedia Britannica Ultimate 2014光盘镜像 homo114514echou: 11123 Linux服务器的SSH连接使用 魔法学徒q: 请问ssh连一个服务器,用ssh -p 端口号 用户名@ip地址的方法,隔了一会出来connection timed out是为什么? FPGA Verilog HDL 系列实例--------步进电机驱动控制 m0_66680866: 你好第32行42行能解释一下什么意思吗? echarts的时间线图表 若水000: 小主,没有结果显示和代码解释好可惜啊,看不懂啊