半小时掌握zookeeper

zookeeper还是很简单的,官方文档足以,这里还是简单做个记录

定义:

zookeeper是一个分布式的,为分布式应用提供协调服务的APache项目。基于观察者模式设计的分布式服务管理框架。

工作机制

特点

  1. 一个领导者(Leader),多个跟随者(follower)组成的集群
  2. 只要半数以上的几点存活,集群就能正常工作
  3. 全局数据一致,每个server都保存一份相同的数据
  4. 更新请求顺序执行
  5. 原子性
  6. 实时性
数据结构
  1. 统一命名服务
  2. 统一配置管理
  3. 统一集群管理
  4. 服务器动态上下线
  5. 负载均衡
操作记录
节点类型

操作步骤:

  1. 集群规划:在hadoop102,hadoop103,hadoop104三个节点上部署zookeeper
  2. 同步其中一台zookeeper目录下的文件至其他服务器
  3. 配置服务器编号:在zookeeper目录下创建zkData,并在其中创建myid文件,编辑myid文件内的内容,输入编号,比如2,3,4
  4. 配置zoo.cfg文件:一般是重命名conf目录下的zoo_sample.cfg文件。并在其中修改dataDir字段,指定为zkData所在目录,并增加server.2=服务器编号:IP地址:该服务器与leader交换信息的端口:宕机时选举的通信端口相应信息。最后同步该文件。
    (zookeeper在启动时读取myid与cfg中的信息进行比较从而确定该服务器是哪一台)
  5. 分别启动zookeeper服务,查看状态


    截图展示

客户端命令

$ zkCli.sh 启动客户端
参考该博文

结构体

示意图

1)czxid- 引起这个znode创建的zxid,创建节点的事务的zxid
2)ctime - znode被创建的毫秒数(从1970年开始)
3)mzxid - znode最后更新的zxid
4)mtime - znode最后修改的毫秒数(从1970年开始)
5)pZxid-znode最后更新的子节点zxid
6)cversion - znode子节点变化号,znode子节点修改次数
7)dataversion - znode数据变化号
8)aclVersion - znode访问控制列表的变化号
9)ephemeralOwner- 如果是临时节点,这个是znode拥有者的session id。如果不是临时节点则是0
10)dataLength- znode的数据长度
11)numChildren - znode子节点数量

监听器的原理

监听器原理

写数据流程

写数据

剩下的就是Java示例了,以后有机会再写。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。