学习笔记-Zookeeper

一、什么是Zookeeper

分布式协调框架:统一命名服务、状态同步服务、集群管理、分布式配置项

1、文件系统数据结构

znode(目录节点)

 2、事件监听机制

可以对节点进行监听

二、zookeeper实战

启动 zkServer.sh

启动客户端 zkcli.sh  (默认端口2181)

常用命令

基础增删,设值、取值

create /test    默认是持久化节点

 delete /test

set /test  abc

get /test 

create -e /ephemeral   

-s 顺序节点 会自动累加

-e 临时节点 无法创建子节点

-c 容器节点  一个周期内被删除

-t 需要修改配置文件开启,否则不能用。

监听

ls -w /test 监听节点,但是是一次性的。

ls -R -w /test 监听整个节点树,每个节点监听一次,一旦触发就失效

权限控制ACL

 c-create w-write r-read d-delete a

集群

锁机制

分布式锁

单进程锁 java: synchronized / lock 

分布式锁特点:独占性 

1、非公平锁:

当A拿到锁,其余所有人在等待锁的释放。A释放了,通知其他人,B拿到锁后,剩下人又在等待

这就是惊群效应,会给zk带了压力

 2、公平锁

先来后到

直接用curator连接zk, 提供了公平锁。

1、父节点是容器节点

2、子节点是临时顺序节点

3、共享锁

解决读写不一致

写的锁前,不可以有写或者读的请求。监听前面一个节点,不管是读还是写

读的锁前,不可以有写的请求,可以有读的请求。代码实现,监听最近的写节点

 redis锁和zk锁的区别

1、redis不管是哨兵还是集群模式,都是主从节点的。主节点写入成功即成功。

2、zk是leader和follower模式,半数以上写成功,才算写成功。

ZOOKEEPER的可靠性比redis的好

但是,性能可定是redis好。

读写并发不一致情况,如何保证数据一致性?

共享锁

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值