[译]ZooKeeper recipes-引言
ZooKeeper高级应用
本系列将指导使用ZooKeeper来实现高级功能,所有功能都在客户端完成,不需要ZooKeeper的特殊支持。希望可以得到社区的支持将这些加入到一个标准的客户端类库中(Curator已经实现了除两阶段提交的功能)。
ZooKeeper最有意思的一点是,即便ZooKeeper使用异步通知,你可以使用这点来构建同步的一致性元素,如队列,锁等。你将会看到,ZooKeeper强制使用全局的更新顺序,并有机制用于广播这个顺序。
值得记录的是,本recipes尝试使用最佳实践。特别是避免投票、计时或其他会导致“羊群效应”、通信激增、扩展受限的因素。
也有许多有用的功能这里并没有描述-如可撤销的读写优先锁等。一些这里提到的(尤其是锁)只代表某些观点,你也可以找到其他方法(如事件处理和队列),或更实用的方法达到同样的功能。总而言之,这里的例子只是用于展示想法。
关于错误处理的重要注意事项
当实现这些recipes时你必须处理可恢复的错误(详见FAQ)。尤其是诸多recipes使用了sequential和ephermeral节点。当创建一个sequential ephemeral节点是,有一种情况,当create在服务端成功但是服务端在返回结果给客户端前宕机。当客户端重连会话,这个会话仍然有效,因此节点没有被移除。意味着客户端很难知道节点是否被创建。本系列的recipes会包含解决方法。
开箱即用:名字服务、配置、组成员识别
名字服务和配置是ZooKeeper两个首要功能。这两个是由ZooKeeper API直接提供的。
另一个ZooKeeper直接提供的功能是组成员识别(group membership)。组可以表现为一个节点。组的成员在组节点下创建ephemeral节点。异常失效的成员会自动从ZooKeeper中移除
目录
Barrier - http://www.cnblogs.com/resentment/p/6194361.html
Queues - http://www.cnblogs.com/resentment/p/6210677.html
Locks - http://www.cnblogs.com/resentment/p/6226146.html
Two-phased Commit - http://www.cnblogs.com/resentment/p/6246760.html
Leader Election - http://www.cnblogs.com/resentment/p/6258813.html
原文
http://zookeeper.apache.org/doc/trunk/recipes.html
[译]ZooKeeper recipes-引言的更多相关文章
- ZooKeeper Recipes and Solutions 翻译
ZooKeeper 秘诀 与解决方案 A Guide to Creating Higher-level Constructs with ZooKeeper Out of the Box Applica ...
- ZooKeeper Recipes and Solutions
原文地址:http://zookeeper.apache.org/doc/current/recipes.html 参考:https://zookeeper.apache.org/doc/trunk/ ...
- [译]ZOOKEEPER RECIPES-Locks
锁 全局式分布式锁要求任何时刻没有两个客户端会获得同一个锁对象,这可以通过使用ZooKeeper实现.像优先级队列一样,首先需要定义一个锁节点. 在ZooKepeer的发布中src/recipes/l ...
- [译]ZOOKEEPER RECIPES-Queues
队列 分布式队列是一种常见的数据结构.为了在ZooKepeer中实现分布式队列,第一步是要使用一个znode代表队列本身.分布式客户端通过create()方法将内容放入一个名叫"queue- ...
- [译]ZOOKEEPER RECIPES-Barriers
Barrier 在分布式系统中常使用Barrier来阻塞进程,当满足一定条件后再恢复进行后续操作.Barrier在Zookeeper中可以通过设计一个Barrier节点来实现.Barrier 节点存在 ...
- [译]ZOOKEEPER RECIPES-Leader Election
选主 使用ZooKeeper选主的一个简单方法是,在创建znode时使用Sequence和Ephemeral标志.主要思想是,使用一个znode,比如"/election",每个客 ...
- [译]ZOOKEEPER RECIPES-TWO PHASED COMMIT
两段式提交 两段式提交协议可以让所有分布式系统中的客户端达成协议同时提交或回滚事务. 在ZooKeeper中你可以通过协调者(coordinator)创建一个事务节点来实现两段式提交.例如" ...
- <译>Zookeeper官方文档
apache原文地址:http://zookeeper.apache.org/doc/trunk/zookeeperOver.html ZooKeeper ZooKeeper: A Distribut ...
- [译]Zookeeper的优点与局限性
1.Zookeeper的优点与局限性 在学习了Zookeeper(后文都简称zk)的介绍和功能后,您已经很好地理解了zk. 现在,在这个zk教程中,我们将讨论zk的优点和局限性. zk有几个功能对用户 ...
随机推荐
- Hyper-V 激活Windows系统重启后黑屏的解决方法 + 激活方法
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia ...
- Python的单元测试(二)
title: Python的单元测试(二) date: 2015-03-04 19:08:20 categories: Python tags: [Python,单元测试] --- 在Python的单 ...
- 【微框架】之一:从零开始,轻松搞定SpringCloud微框架系列--开山篇(spring boot 小demo)
Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现 Spring 顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目 ...
- angularJS(6)
angularJS(6) 一:angularJs的事件. 1.ng-click指令定义了AngularJS点击事件. <div ng-app="myapp" ng-contr ...
- angularJS(5)
angularJS(5) 一,数据循环:特别要注意作用域 使用ng-repeat指令. <div ng-app="myApp" ng-controller="myC ...
- AlloyTeam2015前端大会都说了啥
昨天在腾讯大厦参与了鹅厂AlloyTeam召开的AC2015前端大会,度过了充满精彩和收获的一个下午,用一句话形容这次前端Event应该是“诚意满满,干货满满”. 说实话,这次AlloyTeam没有对 ...
- WPF - 属性系统 (4 of 4)
依赖项属性的重写 在基于C#的编程中,对属性的重写常常是一种行之有效的解决方案:在基类所提供的属性访问符实现不能满足当前要求的时候,我们就需要重新定义属性的访问符. 但对于依赖项属性而言,属性执行逻辑 ...
- iOS开发系列--Swift进阶
概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...
- 一步一步使用ABP框架搭建正式项目系列教程之本地化详解
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...
- esayui