Zookeeper
文章平均质量分 88
iteye_19607
这个作者很懒,什么都没留下…
展开
-
zookeeper实战:ConfigServer代码样例
ConfigServer从业务需要上来说,作为一个全局配置管理中心,负责保存公用服务中的服务接口/server配置/通讯网关/全局权限等;对服务消费方而言,可以良好的解偶对硬编码配置的依赖,并可以实现服务的动态管理等。系统配置数据普遍具有“类别多”,“数据小”,“非关系型”,并要求存储系统具备高效的存取能力和健壮性,本例使用zookeeper来简单实现此功能。如下代码仅作参考。 1...原创 2013-05-04 15:22:20 · 164 阅读 · 0 评论 -
Zookeeper中snapshot过程与session简介
8. snapshot原理: ZK Snapshot主要意义就是将当前Database + Memory中数据的状态,直接序列化到文件,以方便在故障时可以迅速恢复.snapshot是fuzzy的(非严格意义的snapshot),snapshot所涉及到的类有SyncRequestProcessor(同步请求处理器,处理请求的log同步到disk)/ZKDatabase(ZK内存数据库...原创 2013-04-14 15:08:46 · 555 阅读 · 0 评论 -
Zookeeper-Wathes简介
10.Zookeeper watches:Zk中所有的read操作都可以指定watch—getData(),getChildren(),exists()。watch是一次性事件触发器,当其”watch”的数据发生变更是,把事件发送给client。定义一个watch有2个关键点。1)一次触发:如果一个client在getData(“/znode1”,true)设置了watch,并且不久后...原创 2013-04-14 15:09:22 · 172 阅读 · 0 评论 -
Zookeeper-Client端初始化过程.
Zookeeper全参数构造函数:public Zookeeper(String connectString,int sessionTimeout,Watcher watcher,long sessionId,byte[] sessionPWD,boolean canBeReadOnly) F1 Zookeeper实例整体过程 F2 内部原理 如果serv...原创 2013-04-15 12:38:25 · 894 阅读 · 0 评论 -
Zookeeper-Server端启动过程与处理类
Zookeeper服务端初始化过程,引导类:QuorumPeerMain.java. F1.Server端引导类执行过程 snapshot文件是ZKDatabase内存数据的”快照”,当server接收到一定量的write操作或者达到时间间隔阀值,将会对内存数据进行一次本地文件序列化存储,每次存储将会生成一个snapshot文件,同时也会伴随一个log文件的生成.log文件为se...原创 2013-04-15 12:38:49 · 121 阅读 · 0 评论 -
Zookeeper选举过程描述与状态迁移
Zookeeper服务端初始化过程(二):Leader选举过程 Server具有如下几种状态:LOOKING:失去leader信号,选举中FOLLOWING:环境正常,对于follower而言,正在“跟随”leaderLEADING:环境正常,对于leader而言,正在“带领”OBSERVING:环境正常,对于observer而言,正在“观察” 选举的时机:Leader失效,或...原创 2013-04-15 12:39:07 · 331 阅读 · 0 评论 -
Zookeeper-Server数据同步与L-F交互
Zookeeper服务端初始化过程(三):数据恢复与同步 server类型(ServerType)client端服务类server端服务类Leader(new)LeaderZookeeperServerLeaderFollowerFollowerZookeeperServer...原创 2013-04-15 12:39:25 · 728 阅读 · 0 评论 -
Zookeeper-Watcher机制与异步调用原理
Watcher机制:目的是为ZK客户端操作提供一种类似于异步获得数据的操作. 1)在创建Zookeeper实例时,允许接收一个watcher参数,此参数将会赋值给watchMnanger.defaultWatcher,成为当前客户端的默认Watcher.需要注意此watcher和其他watcher不同,此wather主要是响应"与链接状态转换"有关的事件(比如,"建立链接","链接关闭...原创 2013-04-15 18:15:31 · 406 阅读 · 0 评论 -
Zookeeper选举过程与消息类型描述(补充部分)
[引导,选举过程]1. 选举开始,当前server整理出自己的serverId,zxid(事务id,来自ZKDatabase),peerEpoch(此值来自文件,每一轮选举成功后都会导致epoch值改动,此值会被存储在文件中,此值用来标记leader,zxid由"epoch + 自增id"组成,zxid的前32位即为epoch),然后向所有的PARTICIPANT类型(非observ...原创 2013-04-16 16:26:56 · 260 阅读 · 0 评论 -
Zookeeper简介(二)
二.ZK设计原理简述1. Zk数据模型和层级namespace: ZK的名称空间非常类似文件系统,名称为一系列的path,例如”/root/app/task”,ZK中每个node都是通过path来标识的。和文件系统不同的是,每个node可以有关联的data,字节点也是如此,这一点可以类比为文件系统允许path为file或者目录。ZK的设计是为了存储“协调”数据:状态信息,配置,位置信息等...原创 2013-04-14 15:08:24 · 390 阅读 · 0 评论 -
Zookeeper配置参数与简介(1)
[前言:这是一次艰苦的旅行...]一.初始ZK 1. 什么是ZK:ZK是一个高效的分布式协调服务,它暴露了一些公用服务,比如命名/配置管理/同步控制/群组服务等。我们可以使用ZK来实现比如达成共识/集团管理/leader选举等。关键词:分布式协调 高性能2. 设计目标:简单:ZK中的namespace组织结构类似与标准的文件系统,通过这些共享的有层次的namespace来互相协...原创 2013-04-14 15:07:35 · 1393 阅读 · 0 评论 -
Zookeeper-Session控制原理与异常详解
Zookeeper构造器:Zookeeper(connectString,sessionTimeout,watcher,canBeReadOnly)Zookeeper(connectString,sessionTimeout,watcher,sessionId,byte[] sessionPwd,canBeReadOnly), 上述是创建ZK实例的2个构造方法,需要指定c...原创 2013-04-14 15:07:12 · 1402 阅读 · 0 评论 -
zookeeper实战:SingleWorker代码样例
我们需要一个“单点worker”系统,此系统来确保系统中定时任务在分布式环境中,任意时刻只有一个实例处于活跃;比如,生产环境中,有6台机器支撑一个应用,但是一个应用中有30个定时任务,这些任务有些必须被在“单线程”环境中运行(例如“数据统计”任务),避免并发的原因不是在java层面,可能是在操作db数据时,或者是在消息消费时,或者是信息推送时等。某个指标的“数据统计”任务,每天只需要...原创 2013-05-07 19:35:23 · 183 阅读 · 0 评论 -
zkCli.sh指令备忘
1) 创建节点 格式:create [-s] [-e] path data acl 其中"-s"表示创建一个"有序"节点,"-e"表示创建一个临时节点.默认为持久性节点 ->create -s /test null->create /test null 如下为包括ACL的例子: ->create -s /test nul...2013-09-17 19:24:07 · 468 阅读 · 0 评论 -
Zookeeper开发小结
一.实例化zookeeper与自动重连代码样例public class ZkClient { private ZooKeeper zooKeeper; private String connectString; private Integer sessionTimeout; private Object waiter = new Objec...2013-09-30 16:34:56 · 112 阅读 · 0 评论 -
I0Itec-zkClient小结
zookeeper客户端目前社区中比较多,而且大家在使用zookeeper时或多或少都会自己"重复发明轮子";事实上apache zookeeper API也已经足够完善,我们自己封装client也是非常简单的工作;其实大家封装client,无外乎就是调整一些非常基本的功能.我们看看I0Itec能否满足我们的需要. I0Itec-zkClient并不是一个非常大众化的工具,也...原创 2013-10-12 14:49:22 · 643 阅读 · 0 评论 -
Apache curator-client详解
Apache curator框架中curator-client组件可以作为zookeeper client来使用,它提供了zk实例创建/重连机制等,简单便捷.不过直接使用curator-client并不能减少太多的开发量,因为它相对比较底层,稍后我们继续了解curator-framework组件提供的更多的便捷特性. 一.核心API 1. CuratorZookeep...原创 2013-11-30 15:07:52 · 1362 阅读 · 0 评论 -
Apache curator-frameworker简述
Apachecurator-framework是一个高层API,对curator-client组件进行了二次封装,开发者可以更少的关注zookeeper底层,进行快捷的开发. 特性一览:链接管理: 框架已经兼容了zookeeper网络链接异常问题,并提供了自动重连机制.简洁的API设计: fluent风格API(最大亮点),大部分API中已经兼容了zookeeper...原创 2013-11-30 15:08:46 · 660 阅读 · 0 评论 -
Apache-curator:zookeeper框架简述
Apache curator框架,对zookeeper API进行了二次封装,提供了很多操作zookeeper的便捷方法,它不仅仅是一个zkClient,而且还提供了很多良好的实现(比如分布式锁)等.curator框架很简单,很容易上手,对于使用zookeeper做分布式设计的开发者而言,是一个不错的帮手. Apache curator框架考虑到开发者对zookeepe...原创 2013-11-30 15:09:18 · 167 阅读 · 0 评论 -
Apache curator-recipes代码实例
Apache curator-recipes组件提供了大量已经"生产化"(produced)的特性,极大的简化了使用zk的复杂度. 1. Cache: 提供了对一个Node持续监听,如果节点数据变更,即可立即得到响应. 开发者无需过度的关注watcher和Event操作. 2. Queues: 提供了重量级的分布式队列解决方案,比如:权重队列,可延迟队列等.其实Zo...原创 2013-12-04 19:33:49 · 1017 阅读 · 0 评论 -
Zookeeper-Server端请求处理链
Zookeeper Server端对接收到的Client端请求,以及Leader接收到的Follower/Observer请求,都会以"处理链"的方式"分工/逐步"处理,这是一种良好的设计模式..不过事实上Zookeeper源码中,这部分代码写的确实比较"纠结".. 一. Folower端:Follower与Client的通讯入口为ServerCnxn.doIO()方法,Follo...原创 2013-04-18 18:10:25 · 310 阅读 · 0 评论