当前位置: 首页 > web >正文

Zookeeper的简单了解

Zookeeper的简单了解

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

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

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

基本概念

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

监听器

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

实现分布式锁

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

实现注册中心

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

http://www.xdnf.cn/news/16432.html

相关文章:

  • 兼容性问题记录
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现轮船检测识别(C#代码UI界面版)
  • 【C/C++】Undefined reference: memset_s
  • 港股历史逐笔十档分钟级订单簿行情数据分析
  • 黑屏运维OceanBase数据库的常见案例
  • 【算法】前缀和经典例题
  • Kubernetes 监控完全指南:PromQL 通用查询与最佳实践
  • Claude 4.0 终极编程指南:模型对比、API配置与IDE集成实战
  • 深度解析【JVM】三大核心架构:运行时数据区、类加载与垃圾回收机制
  • OGG同步Oracle到Kafka不停库,全量加增量
  • 《汇编语言:基于X86处理器》第9章 编程练习
  • 新房装修是中央空调还是壁挂空调好?
  • 背包DP之完全背包
  • Agentic RAG理解和简易实现
  • UG创建的实体橘黄色实体怎么改颜色?
  • HCIP上HCIA复习静态综合实验
  • 【Java、C、C++、Python】飞机订票系统---文件版本
  • 基于springboot的小区车位租售管理系统
  • dart使用
  • 从入门到进阶:JavaScript 学习之路与实战技巧
  • C++学习笔记(十:类与对象基础)
  • 内存优化:从堆分配到零拷贝的终极重构
  • 【笔记】Handy Multi-Agent Tutorial 第四章: CAMEL框架下的RAG应用 (简介)
  • linux-开机启动流程
  • 蓝桥杯java算法例题
  • NOIP 模拟赛 7
  • ZYNQ芯片,SPI驱动开发自学全解析个人笔记【FPGA】【赛灵思
  • 同声传译新突破!字节跳动发布 Seed LiveInterpret 2.0
  • Win11批量部署神器winget
  • 滚珠导轨:手术机器人与影像设备的精密支撑