Zookeeper的简单了解

Zookeeper的简单了解

Zookeeper是一个为分布式应用程序提供协调服务的中间件。

主要作用有三点:分布式锁、注册中心、配置管理、。

特点有读写速度快(内存存储)、有监听机制(用于发布订阅)、保证了顺序一致性(所有写请求由leader节点串行写)等等。

基本概念

存储结构类似Linux的文件系统,都是树形结构,这个树形结构上的每个节点都叫znode,znode分为 持久节点 (客户端断开会话后依旧保存)和 临时节点(客户端断开会话后就会被删除) 。

监听器

客户端可以向服务端注册一个Watcher监听器,监听某一个节点的事件,如果监听的节点的事件发生了,Zookeeper就会向客户端发送事件通知。这个监听器是一次性的,如果要长久监听一个节点的事件还需要每次事件通知进行回调处理的时候再次为这个节点注册一个监听器。

实现分布式锁

在锁节点下,多个客户端去创建临时顺序节点(临时节点+自动根据创建顺序编号) ,然后编号小的获取到锁,后续的顺序节点会各自创建一个监听器,监听编号比自身小的上一个节点,上一个节点删除掉(释放锁)节点的时候,下一个节点就会获取到锁。很类似AQS锁。

实现注册中心

在手写实现RPC框架项目中,我使用了Zookeeper作为注册中心。Zookeeper数据模型很简单,而且还有事件监听功能,并且自带心跳检测功能,可以侦测哪些服务地址宕机及时删除。所以选择了它作为注册中心,但是呢,由于Zookeeper和服务之间建立着长连接,连接数量一多的话就会导致性能出问题,所以大规模的应用场景下还是使用nacos 。我以微服务名作为永久节点,对应的服务地址作为临时节点挂载在对应的服务名下。临时节点会在它与Zookeeper服务端断开连接后自动删除,这时候就会有触发器通知需要服务的那方更新缓存(需要服务的那方实现了缓存机制)。

相关推荐
小江的记录本9 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
身如柳絮随风扬16 小时前
多数据源切换实战:从业务场景到3种实现方案全解析
java·分布式·微服务
AIMath~18 小时前
雪花算法+ZooKeeper解决方案+RPC是什么
分布式·zookeeper·云原生
KmSH8umpK18 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第六篇
数据库·redis·分布式
gwjcloud19 小时前
Kubernetes从入门到精通(进阶篇)03
云原生·容器·kubernetes
空中海19 小时前
Kafka :存储、复制与可靠性
分布式·kafka·linq
渣渣盟19 小时前
构建企业级实时数据管道:Kafka + Flink 最佳实践
分布式·flink·kafka
日取其半万世不竭20 小时前
PeerTube 部署指南:自建视频托管平台
云原生·eureka·音视频
KmSH8umpK20 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第四篇
数据库·redis·分布式
KmSH8umpK21 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第五篇
数据库·redis·分布式