美文网首页
zookeeper场景运用及原理

zookeeper场景运用及原理

作者: 北海北_6dc3 | 来源:发表于2020-03-20 16:32 被阅读0次

ZooKeeper提供了什么?

  1. 文件系统
  2. 通知机制
  3. Zookeeper文件系统

Zookeeper通知机制 客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

Zookeeper能做什么

  • 分布式锁

前面我谈过,zookeeper中存在4种类型的Znode节点,分别对应:

PERSISTENT:永久节点
EPHEMERAL:临时节点
PERSISTENT_SEQUENTIAL:永久节点 序列化
EPHEMERAL_SEQUENTIAL:临时节点序列化

根据这个特性,我们就可实现分布式锁,原理是使用:临时节点序列化。

  1. 客户端连接 Zookeeper,并在 /lock 下创建临时且有序(即EPHEMERAL_SEQUENTIAL)的子节点,如,第一个子节点为 /lock/lock-000,第二个为 /lock/lock-001,以此类推;
  2. 创建成功后,获取 /lock 下的子节点列表,判断刚创建的子节点在列表中是否是序号最小的子节点,如果是,则认为是获得锁,否则,监听刚创建的子节点的前一位子节点的删除消息,等获得该子节点的变更通知后,重复此步骤,直至获得锁为止;
  3. 执行业务代码;
  4. 完成业务代码后,删除对应子节点释放锁;

与redis实现分布式锁区别:

  1. Redis 需要自己实现重试逻辑,比较消耗性能;
  2. zk 重试获取锁,对节点注册监听器即可,不需要主动尝试,性能开销小;【前面节点变化,通知】
  3. 如果 Redis 获取锁的客户端挂了,就不能主动删除 key,只能等待 key 的超时到期,而 zk 会主动发现客户端断连,并将临时 znode 删除,触发后面的监听器。

参考资料
详解Zookeeper原理与应用场景

  • 队列管理

和分布式锁服务中的控制时序场景基本原理一致,入列有编号,出列按编号。

  • 命名服务、配置管理

其中命名服务和配置管理可以考虑为一个公共的数据库,这个数据库能检测数据变化,会话状态,并发布通知

  • 集群管理

同队列管理相似功能

参考资料:
大白话讲Zookeeper能做什么?(一):命名服务与配置管理
zookeeper命名服务
ZOOkeeper 详解(转)

常见框架中的zookeeper应用

dubbo

作为注册中心

kafka

存储kafka的meta数据

相关文章

  • zookeeper场景运用及原理

    ZooKeeper提供了什么? 文件系统 通知机制 Zookeeper文件系统 Zookeeper通知机制 客户端...

  • zookeeper

    zookeeper基本原理及适用场景-cherish568-ChinaUnix博客 http://blog.chi...

  • 深入了解Zookeeper核心原理

    之前的文章[Zookeeper基础原理&应用场景详解]中将Zookeeper的基本原理及其应用场景做了一个详细的介...

  • zookeeper的设计原理及使用场景

    zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,解决分布式环境下多个进...

  • ZooKeeper原理及使用

    https://blog.csdn.net/xinguan1267/article/details/3842214...

  • Zookeeper原理及搭建

    以下概念性的语言均为本人理解,欢迎大佬指出错误,小白希望深入理解请到官网 它是什么? Zookeeper 本质上是...

  • RPC

    RPC原理及RPC实例分析 Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

  • Runloop

    Runloop 实现原理及应用iOS - RunLoop 底层源码详解及具体运用

  • Kafka相关文集

    Kafka 运维 kafka集群配置 kafka的安装(包括zookeeper) 原理及使用 Kafka之sync...

  • (4)Zookeeper学习笔记-Curator基本操作及应用场

    Zookeeper学习笔记-Curator基本操作及应用场景https://blog.csdn.net/hosao...

网友评论

      本文标题:zookeeper场景运用及原理

      本文链接:https://www.haomeiwen.com/subject/nhbjyhtx.html