zookeeper简介

ZooKeeper 概述

Zookeeper 是一个分布式协调服务的开源框架
实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

ZooKeeper 特性

  1. 全局数据一致 :客户端无论连接到那台服务器,展示的数据都是一样的
    (写主:数据修改的请求提交给主数据,对读数据请求没有限制,任何节点都能响应,写的过程中采取写主方式,所有操作只有leader进行,follower不能处理写操作)
  2. 可靠性:如果消息被其中一台服务器接受,那么将被所有的服务器接受
  3. 顺序性:包括全局有序和偏序两种,偏序指到客户端
  4. 数据更新原子性:一次数据更新要么成功(半数以上节点成功)要么失败,不存在中间状态;
  5. 实时性:保证客户端将在一个时间间隔范围内获得服务器的更新信息
    (允许一定的延迟,有可能一个节点同事处理多个请求,按照请求的编号处理,先来后到,后面的请求处于阻塞状态,当请求被处理时解除)

ZooKeeper 集群角色

zookeeper选举机制:
Leader选举算法采用了Paxos协议
非全新集群选举:优先采取逻辑时钟选举,选举相同时优先采取版本高的为主,当版本一致时优先选serverID高的为主

  • Leader(领导者):
    Zookeeper 集群工作的核心;负责发送事务(读写操作)请求
    事务请求(写操作)的唯一调度和处理者,保证集群事务处理的顺序性;
  • Follower(追随者):
    接收 处理客户端非事务(读操作)请求,转发事务请求给 Leader;
    参与集群 Leader 选举投票。
  • Observer(观察者):
    针对访问量比较大的 zookeeper 集群,还可新增观察者角色
    观察 Zookeeper 集群的最新状态变化并将这些状态同步

ZooKeeper 集群搭建

 配置主机名称到 IP 地址映射配置
 修改 ZooKeeper 配置文件
 远程复制分发安装文件
 设置 myid
 启动 ZooKeeper 集群

znode节点

znode节点:既有文件功能又有目录功能
临时节点:一旦会话结束,临时节点将被自动删除,当然可以也可以手动删除。
永久节点:该节点的生命周期不依赖于会话,只有在客户端执行删除操作时,才能被删除
Znode 还有一个序列化的特性,如果创建的时候指定的话,该 Znode 的名字
后面会自动追加一个不断增加的序列号。

 - cZxid :Znode 创建的事务 id。
 - ctime:节点创建时的时间戳.
 - mZxid :Znode 被修改的事务 id
 - mtime:节点最新一次更新发生时的时间戳
 - ephemeralOwner:如果该节点为临时节点, ephemeralOwner 值表示与该节点 绑定的 session id.
在 client 和 server 通信之前,首先需要建立连接,该连接称为 session。

ZooKeeper shell

客户端连接 zkCli.sh
创建节点: create -s(顺序节点)/-e(临时节点) 节点路径 节点数据 acl(权限控制)
查看节点: ls 路径 ;get 文件路径(查看节点详细信息) ;ls2 文件路径(查看节点)
更新节点: set 文件路径 更新数据
删除节点: delete 文件路径; 删除之前必须删除子节点 rmr 文件路径
设置监听watch: get 节点路径 watch(一次性触发)

ZooKeeper Watcher

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值