Zookeeper
文章平均质量分 81
lovingprince
关注大型WEB系统架构的高可用性、高性能处理
展开
-
Zookeeper 3.3.3 Transaction Logs&Snapshot 序列化
Zookeeper Server持久化两类数据,Transaction以及Snapshot,logDir存储transaction命令,dataDir存储snap快照,其下子目录名称以version-2命名,子目录内部文件是分别以log.zxid和snapshot. lastPr原创 2011-09-23 14:48:42 · 4889 阅读 · 0 评论 -
Zookeeper 3.3.3 服务器配置项详细解释
最小配置 clientPort 监听客户端连接的端口 dataDir 内存数据库快照存放地址,如果没有指定事务日志存放地址(dataLogDir),默认也是存放在这个路径下,建议两个地址分开存放到不同的设备上。 tickTime 心跳基本时间单位,毫秒级,ZK基本上所有的时间都是这个时间的整数倍。高级配置(可选,有的需要直接通过系统属性进行设置) dataL原创 2011-10-08 21:17:48 · 9120 阅读 · 0 评论 -
ZK ACL访问控制处理流程
Zk 对znode操作采用ACL进行了访问权限控制,类似于linux提供的读写权限,ZK将操作权限划分以下几种:CREATE/READ/WRITE/DELETE/ADMIN,· CREATE: 表示有权限创建一个子节点· READ: 表示可以getData或者getChildren· WRITE: 表示可以setData· D原创 2011-11-04 13:31:55 · 7146 阅读 · 0 评论 -
ZK 客户端事件-状态对应关系图
KeeperState.SyncConnected 时事件类型为EventType.None发生在客户端收到ConnectResponse,与客户端协调好session time的时间后,会触发一个KeeperState.SyncConnected 的None事件类型。原创 2011-10-18 19:46:30 · 4500 阅读 · 0 评论 -
ZK session客户端过期(Expired)过程
一般情况下,zk客户端与服务端建立连接后,会在2/3*sessionTime*1/2的时候发送一个心跳消息到服务端,保持会话更新。但是可能在某个时候网络中断可能导致客户端无法连接上服务端,此时客户端会不停的依次重试各个服务器,一直到连接上某个服务器为止。如果在未连接上这段时间内,原创 2011-10-18 19:19:41 · 22871 阅读 · 4 评论 -
Zookeeper 3.3.3 启动过程
不管是leader,还是Follower 还是Observer,QuorumPeerMain启动时,会通过QuorumPeer.start()方法启动监听客户端请求的端口,一旦有客户端请求来到,会建立连接并等待客户端发送ConnectRequest请求,如果客户端此时发来Conn原创 2011-10-07 10:11:10 · 4321 阅读 · 1 评论 -
Zookeeper 3.3.3 LeaderElection算法总结
LeaderElection. lookForLeader():1. 生成一个随机数xid2. 对每一个PARTICIPANT依次执行如下步骤:a) 发送xid,等待消息该PARTICIPANT返回。b) 响原创 2011-09-30 17:58:12 · 2803 阅读 · 0 评论 -
Zookeeper 3.3.3 FastLeaderElection算法总结
FastLeaderElection. lookForLeader():1、 logicalclock++,表示是新一轮leader选举,它是一个内存值,服务器重启就会导致该值归0,所以如果服务器活得越久,这个值随着应该越大,每一轮选举会保持所有机器该值始终是其中相同的最大原创 2011-09-27 15:52:34 · 4485 阅读 · 9 评论 -
Zookeeper 3.3.3消息序列化格式解析
Zookeeper 客户端使用Packet来管理消息,. Packet管理 请求包头(RequestHeader)和请求包体(Record的不同实现,类似于ExistsRequest在调用zookeeper.exists时发送),应答包头(ReplyHeader)和应答包体(Re原创 2011-09-17 01:37:33 · 3955 阅读 · 0 评论 -
ZK ACL访问的一个小demo
ZooKeeper zk=new ZooKeeper("192.168.1.188,192.168.1.189,192.168.1.190",50000,w); ArrayList acls = new ArrayList(); ACL acl1=new ACL(ZooDefs.Perms.ALL, new Id("digest", DigestAu原创 2011-11-04 14:34:55 · 4519 阅读 · 0 评论