摘要:安装和配置详解本文介绍的 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, 132 阅读, 0 推荐, 收藏,
摘要:日期:2011-10-08作者:ni掌柜查看PDF版本ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利用其提供的一系列API接口(或者称为原语集),摸索出来的典型使用方法。因此,也非常欢迎读者分享你在ZK使用上的奇技淫巧。ZooKeeper典型应用场景 阅读全文
ZooKeeper权限控制
2013-07-22 00:43 by java20130722, 454 阅读, 0 推荐, 收藏,
摘要:日期:2011-11-02作者:ni掌柜目前在公司内部使用ZooKeeper的地方越来越多,应用大多喜欢自己部署一套ZK集群来使用。考虑到ZK的高可用,并且一套ZK集群至少3台机器, 那么每个应用,尤其是一些非核心应用都自己去部署一套的话,对资源利用率很低。另外,随着ZK容灾的提出,单套ZK集群使用的机器量会更大,运维人员开始 对这个情况担忧,强烈希望能够合并ZK集群。ZK集群合并使用本身并没有太大的难度,问题在于应用方是否愿意大家共用一套ZK集群,这其中一个显而易见的问题就是权限:如果我的数据被别人动了怎么办?在公司不少牛人的帮助下,暂时得到两个权限方案,同时也希望大家提出自己的看法,共同进 阅读全文
为ZooKeeper增加一个小功能:指定IP进行受限客户端过滤
2013-07-22 00:42 by java20130722, 1725 阅读, 0 推荐, 收藏,
摘要:日期: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, 282 阅读, 0 推荐, 收藏,
摘要:日期: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, 889 阅读, 0 推荐, 收藏,
摘要:日期: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, 214 阅读, 0 推荐, 收藏,
摘要:日期: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, 484 阅读, 0 推荐, 收藏,
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://nileader.blog.51cto.com/1381108/932948查看PDF版本转载请用注明:@ni掌柜nileader@gmail.com在之前一个文章《ZooKeeper Java API 使用样例》中提到,客户端使用ZooKeeper的时候,首先会建立与ZooKeeper的连接,方法是通过调用下面这个构造方法来实现的。publicZooKeeper(StringconnectString,//intsessionTimeout,//Watcherwatcher,// 阅读全文
[置顶] 1+1/1+1/2+1/3 + ...+1/16的整数部分是多少?
2013-07-21 23:39 by java20130722, 829 阅读, 0 推荐, 收藏,
摘要:以前很小,大概四岁的时候,爷爷就开始教我数学和诗词,鸡兔同笼问题啊,手抄的唐诗啊这些。有个事情,直到我现在还记得很清楚,有这样一道题:问:1/1 + 1/2 + 1/3 + 1/4 + ... + 1/16 的整数部分是多少?当时我没有做出来,没有往心里去。爷爷说啥子问题都要弄清楚,这样学东西才会学踏实。虽然这道题做出来来,但是其他好多我多会,大人也喜欢夸我。我就把这道放着,没管它了。觉得考试不会考这样的题。小学中学学奥数,基本上都能考到奥数班上的前几名,当时奥数班的同学,我晓得的,都最后进了很好的大学。我最好考过第二名,从来没考过第一名。第一名是一个女生,每次都考150,每次,是每次都150 阅读全文
黑马程序员--多线程
2013-07-21 22:36 by java20130722, 159 阅读, 0 推荐, 收藏,
摘要:-------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------进程:是一个正在执行的程序。每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。线程:就是进程中一个独立的控制单元。线程在控制着进程的执行。线程的生命周期:新生状态、就绪状态、运行状态、阻塞状态、死亡状态。多线程的实现方式:第一种方法是通过创建Thread类的的子类来实现,另一种方法是通过实现Runable接口的类来实现。如何通过创建Thread类的的子类来实现多线程呢?步骤如下(1)定义类继承Thread(2)复 阅读全文