随笔分类 - zookeeper
摘要:关于Zookeeper客户端几个注意的地方: 1. 服务器地址管理器:HostProvider; Zookeeper提供了对HostProvider的默认实现(上一篇中这两个类的源码已经列出,这里不再重复); 在获取一个可用服务器地址的时候,使用StaticHostProvider的next方法。
阅读全文
摘要:Zookeeper的客户端主要由以下几个核心组件: Zookeeper实例:客户端入口; ClientWatchManager:客户端Watcher管理器; HostProvider:客户端地址列表管理器。 ClientCnxn:客户端核心线程。其内部包含两个线程:SendThread和EventT
阅读全文
摘要:承接上一篇,接着来说通信协议部分; Zookeeper基于TCP/IP协议,实现了自己的通信协议来完成客户端与服务端,服务端与客户端之前的网络通信; Zookeeper的请求和响应的结构:(请求/响应)头+(请求/响应)体; 1. 请求部分 请求头:包含了请求的最基本信息,xid和type; mod
阅读全文
摘要:Zookeeper的客户端和服务端会进行一系列的网络通信以实现数据传输,对于一个网络通信,首先要解决的就是对数据的序列化和反序列化; ZK使用jute这一序列化组件来进行数据的序列化和反序列化; 使用Jute进行序列化:看一段代码: 1 import org.apache.jute.Record;
阅读全文
摘要:承接上一篇:继续接受最后一个特性:ACL-保障数据的安全; Zookeeper提供了一套完善的ACL(Access Control List)权限控制机制来保证数据的安全; 标识一个有效的ACL的三个维度:权限模式(Scheme),授权对象(ID),权限(Permission),通常使用 schem
阅读全文
摘要:承接上一篇:继续介绍Watcher部分: <4> Watcher :数据变更的通知: zk提供了分布式数据的发布/订阅功能:当主题对象自身状态变化是,会通知所有订阅者; 在zk中引入Watcher机制来实现这种分布式通知功能;ZK允许客户端向服务端注册一个Watcher监听,当服务端的一些指定的事件
阅读全文
摘要:Zookeeper的几个概念:(接下来将从这几个概念书写Zookeeper的内部工作流程) 数据模型 节点特性 版本 Watcher ACL <1> 数据模型: Zookeeper的视图很热Unix文件系统很像。但没有引入文件和文件目录相关概念;而是使用“数据节点”概念,称为ZNode; ZNode
阅读全文

浙公网安备 33010602011771号