zk笔记

Zookeeper目的:旨在减轻构建健壮的分布式系统的任务

Zookeeper的作用: 可以在分布式系统中协作多个任务

这里的协作  包括协同和管理竞争

协同例子:主-从节点之间的协作,如主节点更新数据,从节点更新数据

管理竞争例子:主-从节点之间主节点只有一个,从节点竞争成为主节点

Zookeeper不适用的场景:   不适用存储海量数据,默认节点数据限制1MB

运行方式:Zookeeper服务端和客户端都是以进程的方式运行的,这就意味着会涉及到多线程


在分布式系统中的进程通信有两种方式

A 直接通过网络进行信息交换

B 读写某些共享存储(zookeeper使用的方式)


Zookeeper结构: 类似文件系统的层级树状结构,每一个节点(znode)可能会有数据,也可能没有数据,

数据的存储方式为 字节数组;


znode4种类型:持久有序,临时有序,持久无序,临时无序;

持久:这种节点只有使用delete才会被删除,   用例:主从模式中的从

临时:创建节点的客户端一旦断开连接就会删除  用例: 主从模式中的主

有序:分配一个唯一单调递增的整数,序号会被加到路径后  例: /test1000

无序:

注意:因为临时节点在客户端断开时被删除,所以规定了临时节点不能拥有子节点,但是这

存在解决方案,可以让临时节点的子节点都为临时节点,只不过这个功能还未实现;


监视与通知:如果每次客户端访问znode,每需要获取数据(轮询),这样代价太大,所以使用基于通知机制,可设置监视点,来监视节点的数据是否发生变更,如果节点数据发生变更,zookeeper会先通知客户端,然后变更数据;

 

版本号:每个znode都有一个版本号,随着数据的更新而自增,使用setData和delete用版本号做为参数的时候,操作znode,当客户端和服务端的版本号一致时才能成功

zk运行模式:  独立模式(单机),仲裁模式(集群),实习中接触到的项目就是3个zk


zk回话:客户端和一个服务端的连接,就是一个回话

 

第一个not_conneted  就是无连接,没啥好说的

conecting:客户端初始化ok

conneted:客户端和服务端建立连接,当然,如果客户端和服务端断开了连接,会变为conecting状态,如果能够重新连上另外一个zk服务器的话,那么又会变为conneted状态

close:会话过期

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值