zookeeper的介绍及集群环境搭建

zookeeper

概述

一个分布式的协调框架,主要用于协调辅助其他框架正常运行,主要为了解决应用系统当中的一致性问题。
zk本质上是一个分布式的小文件存储系统,zk上面的每个文件内容最好不要超过1m。

架构

主从架构:主节点是分配任务的节点,一般是一个或两个,也可以是很多个。从节点是执行任务的节点,主要就是执行主节点分配的任务。
主备架构:解决主节点单一故障的问题

主节点(Leader):维护数据的一致性,负责处理用户的读写数据的请求。
从节点(Follower):处理用户的读请求,转发事务请求给leader,参与集群Leader选举投票
Observer:观察者角色,处理读请求,不会参与投票

特性

  • 全局数据一致:每个server保存一份相同的数据

  • 可靠性:如果消息被一台服务器接受,那么将被所有服务器接受

  • 顺序性:如果a消息在b之前发布,那么在所有Server上a都将在b之前发布

  • 数据更新原子性:一次数据更新,要么成功要么失败

  • 实时性:保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息

节点

创建节点

其中-s-e分别指定节点特性,顺序或临时节点,-e为临时节点,-s为顺序节点,acl用来进行权限控制

create [-s][-e] path data acl
  • 创建永久节点
create  path data acl
  • 创建永久顺序节点
create -s path data acl
  • 创建 临时节点(只要断开连接,节点消失)
create -e path data acl

读取节点

与读取相关的命令有ls 和get。

  • ls命令 可以列出zookeeper指定节点下的所有子节点,只能查看指定节点下的第一集的所有子节点;
  • get命令 可以获取zookeeper制定节点的数据内容和属性信息
ls path [watch]
get path [watch]
ls2 path [watch]

更新节点

set path data [version]

data 就是要更新的新内容,version表示数据版本

删除节点

delect path [version]

若啥吃奶胡节点存在子节点,那么无法直接删除该节点,需要先删除子节点
如果需要递归删除节点,可以使用

Rmr path

注意

Rmr /

是删除zookeeper下所有文件

watch机制

ZooKeeper提供了分布式数据发布/订阅功能,一个典型的发布/订阅模型系统定义了一种一对多的订阅关系,能让多个订阅者同时监听某一个主题对象,当这个主题对象自身状态变化时,会通知所有订阅者,使他们能够做出相应的处理。
ZooKeeper中,引入了Watcher机制来实现这种分布式的通知功能。
ZooKeeper允许客户端向服务端注册一个Watcher监听,当服务端的一些事件触发了这个Watcher,那么就会向指定客户端发送一个事件通知来实现分布式的通知功能。
触发事件种类很多,如:节点创建,节点删除,节点改变,子节点改变等。。总的来说可以概括Watcher为以下三个过程:客户端向服务端注册Watcher、.服务端事件发生触发 Watcher、客户端回调Watcher得到触发事件情况

特点

  • 一次性触发
  • 事件的封装:所有节点的变化,都封装成了对应的时间变化节点名的每一次操作都对应一个事件,监听器专门获取这个事件
  • event 异步的发送:监听器与节点之间的操作是异步的
  • 先注册再触发,先注册监听器再触发
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值