摘要:
本文主要介绍zookeeper中zookeeper Server leader的选举,zookeeper在选举leader的时候采用了paxos算法(主要是fast paxos),这里主要介绍其中两种:LeaderElection 和FastLeaderElection.我们先要清楚以下几点一个Server是如何知道其它的Server在zookeeper中,一个zookeeper集群有多少个Server是固定,每个Server用于选举的IP和PORT都在配置文件中除了IP和PORT能标识一个Server外,还有没有别的方法每一个Server都有一个数字编号,而且是唯一的,我们根据配置文件中的配 阅读全文
随笔分类 - zookeeper
Zookeeper全解析——Paxos作为灵魂
2013-07-22 01:03 by java20130722, 173 阅读, 收藏,
摘要:
Zookeeper全解析——Paxos作为灵魂原计划在介绍完ZK Client之后就着手ZK Server的介绍,但是发现ZK Server所包含的内容实在太多,并不是简简单单一篇Blog就能搞定的。于是决定从基础搞起比较好。那么ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server中对应的实现。先说Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为 阅读全文
【转】zookeeper 学习资料
2013-07-22 00:56 by java20130722, 206 阅读, 收藏,
摘要:
这段时间学习zookeeper,记录一下找到的一些资料zookeeper学习记录http://agapple.iteye.com/blog/1111377zookeeper watcher功能分析http://luzengyi.blog.163.com/blog/static/529188201064113744373/ watcher evetn对象客户端与服务器交互的流程http://luzengyi.blog.163.com/blog/static/529188201061155444869/watch 事件的注册和调用基于zookeeper的分布式lock实现http://agappl 阅读全文
基于ZooKeeper的分布式Session实现
2013-07-22 00:51 by java20130722, 312 阅读, 收藏,
摘要:
1.认识ZooKeeperZooKeeper—— “动物园管理员”。动物园里当然有好多的动物,游客可以根据动物园提供的向导图到不同的场馆观赏各种类型的动物,而不是像走在原始丛林里,心惊胆颤的被动 物所观赏。为了让各种不同的动物呆在它们应该呆的地方,而不是相互串门,或是相互厮杀,就需要动物园管理员按照动物的各种习性加以分类和管理,这样我们才 能更加放心安全的观赏动物。回到我们企业级应用系统中,随着信息化水平的不断提高,我们的企业级系统变得越来越庞大臃肿,性能急剧下降,客户抱怨频频。拆 分系统是目前我们可选择的解决系统可伸缩性和性能问题的唯一行之有效的方法。但是拆分系统同时也带来了系统的复杂性—— 阅读全文
分布式服务框架 Zookeeper -- 管理分布式环境中的数据
2013-07-22 00:49 by java20130722, 219 阅读, 收藏,
摘要:
安装和配置详解本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。单机模式单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如:/home/zookeeper-3.2.2 下,Zookeeper 的启动脚本在 bin 目录下,Linux 下的启动脚本是 zkServer.sh,在 3.2.2 这个版本 Zookeeper 没有提供 windows 阅读全文
ZooKeeper典型应用场景一览
2013-07-22 00:45 by java20130722, 133 阅读, 收藏,
摘要:
日期:2011-10-08作者:ni掌柜查看PDF版本ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利用其提供的一系列API接口(或者称为原语集),摸索出来的典型使用方法。因此,也非常欢迎读者分享你在ZK使用上的奇技淫巧。ZooKeeper典型应用场景 阅读全文
ZooKeeper权限控制
2013-07-22 00:43 by java20130722, 460 阅读, 收藏,
摘要:
日期:2011-11-02作者:ni掌柜目前在公司内部使用ZooKeeper的地方越来越多,应用大多喜欢自己部署一套ZK集群来使用。考虑到ZK的高可用,并且一套ZK集群至少3台机器, 那么每个应用,尤其是一些非核心应用都自己去部署一套的话,对资源利用率很低。另外,随着ZK容灾的提出,单套ZK集群使用的机器量会更大,运维人员开始 对这个情况担忧,强烈希望能够合并ZK集群。ZK集群合并使用本身并没有太大的难度,问题在于应用方是否愿意大家共用一套ZK集群,这其中一个显而易见的问题就是权限:如果我的数据被别人动了怎么办?在公司不少牛人的帮助下,暂时得到两个权限方案,同时也希望大家提出自己的看法,共同进 阅读全文
为ZooKeeper增加一个小功能:指定IP进行受限客户端过滤
2013-07-22 00:42 by java20130722, 1733 阅读, 收藏,
摘要:
日期:2011-12-07作者:ni掌柜(所有要下载的文件都在这里:https://issues.apache.org/jira/browse/ZOOKEEPER-1320) ZooKeeper功能定位专一,这“导致”了他并不支持一些“非主流”功能。但是有时候,作为ZooKeeper管理员还是很需要某些功能:比如通过指定ip的方式,拒绝某个客户端的连接和操作请求。 目前ZooKeeper官方的说法是,通过配置iptables来实现这个需求。(另外,ZK能够设置单个客户端的最大连接数,但是对于突发情况,这个貌似是没用的,因为需要重启)。对于那些有Server的系统来说,这个功能其实还是蛮需要的, 阅读全文
ZooKeeper管理员指南——部署与管理ZooKeeper
2013-07-22 00:41 by java20130722, 291 阅读, 收藏,
摘要:
日期:2012-10-20作者:ni掌柜1.部署本章节主要讲述如何部署ZooKeeper,包括以下三部分的内容:系统环境集群模式的配置单机模式的配置系统环境和集群模式配置这两节内容大体讲述了如何部署一个能够用于生产环境的ZK集群。如果仅仅是想在单机上将ZK运行起来,进行一些开发与测试,那么第三部分或许是你的菜。1.1系统环境1.1.1平台支持平 台运行client运行server开发环境生产环境GNU/Linux√√√√Sun Solaris√√√√FreeBSD√ⅹ,对nio的支持不好√√Win32√√√ⅹMacOSX√√√ⅹ注:运行client是指作为客户端,与server进行数据通信,而 阅读全文
zookeeper分布式锁避免羊群效应(Herd Effect)
2013-07-22 00:36 by java20130722, 895 阅读, 收藏,
摘要:
日期:2012-10-25作者:ni掌柜本文主要讲述在使用ZooKeeper进行分布式锁的实现过程中,如何有效的避免“羊群效应(herd effect)”的出现。一般的分布式锁实现这里简单的讲下一般的分布式锁如何实现。具体的代码实现可以在这里看到:https://svn.apache.org/repos/asf/zookeeper/trunk/src/recipes/lock/在之前的《ZooKeepe数据模型》一文中提到过,zookeeper中节点的创建类型有4类,这里我们重点关注下临时顺序节点。这种类型的节点有几下几个特性:节点的生命周期和客户端会话绑定,即创建节点的客户端会话一旦失效,那 阅读全文
ZooKeeper FAQ
2013-07-22 00:33 by java20130722, 219 阅读, 收藏,
摘要:
日期:2011-12-20作者:ni掌柜这段时间来,也在和公司里的一些同学交流使用zk的心得,整理了一些常见的zookeeper问题。这个页面的目标是解答一些zk常见的使用问题,同时也让大家明确zk不能干什么。页面会一直更新。客户端1. 客户端对ServerList的轮询机制是什么随机,客户端在初始化( new ZooKeeper(String connectString, int sessionTimeout, Watcher watcher) )的过程中,将所有Server保存在一个List中,然后随机打散,形成一个环。之后从0号位开始一个一个使用。两个注意点:1. Server地址能够重 阅读全文
ZooKeeper客户端地址列表的随机原理
2013-07-22 00:31 by java20130722, 491 阅读, 收藏,
摘要:
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://nileader.blog.51cto.com/1381108/932948查看PDF版本转载请用注明:@ni掌柜nileader@gmail.com在之前一个文章《ZooKeeper Java API 使用样例》中提到,客户端使用ZooKeeper的时候,首先会建立与ZooKeeper的连接,方法是通过调用下面这个构造方法来实现的。publicZooKeeper(StringconnectString,//intsessionTimeout,//Watcherwatcher,// 阅读全文
分布式服务框架 Zookeeper -- 管理分布式环境中的数据(developerWorks 中国)
2013-01-22 16:43 by java20130722, 167 阅读, 收藏,
摘要:
简介:Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。本文将从使用者角度详细介绍 Zookeeper 的安装和配置文件中各个配置项的意义,以及分析 Zookeeper 的典型的应用场景(配置文件的管理、集群管理、同步锁、Leader 选举、队列管理等),用 Java 实现它们并给出示例代码。安装和配置详解本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网http://hadoop.apache.or 阅读全文
zookeeper学习记录(转自 ITeye)
2013-01-22 15:29 by java20130722, 194 阅读, 收藏,
摘要:
背景 前段时间看了S4流计算引擎,里面使用到了zookeeper进行集群管理,所以也就花了点时间研究了下zookeeper,不求看懂所有源码,但求了解其实现机制和原理,清楚其基本使用。这也是为后续hadoop,gridgain的分布式计算的产品。学习首先就是收集一些前人的一些学习资料和总结内容,方便自己快速入门。这里罗列了几篇不错的文章:http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ (介绍了zookeeper能用来干嘛)http://zookeeper.apache.org/doc/r3.3.2/zookeep 阅读全文
浙公网安备 33010602011771号