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

分布式2(Zookeeper )

Zookeeper

定义:简单的说zookepper=文件系统+监听通知机制

是一个分布式协调服务,CP为了分布式应用提供了一致性服务的软件,

可以基于它实现统一配置管理、命名服务、分布式锁、集群管理

负载均衡、分布式队列、Master 选举等。

场景:

配置管理 【数据发布与订阅配置中心

                数据发布到zk节点上,供订阅者动态获取数据,

                实时更新watch机制。比如全局配置信息、地址列表。K-V结构。

命名服务: 通过名字获取服务资源或者服务地址。

集群管理 :是否有机器退出和加入、选举mater。

分布式锁: 临时有序节点 ,监听器

                【临时zk 死掉会释放锁,有序 就是先获取最小的,然后依次执行】

持久化/临时目录  -->有序

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

使用分布式系统就无法避免对节点管理的问题(需要实时感知节点的状态、对节点 进行统一管理等等),而由于这些问题处理起来可能相对麻烦和提高了系统的复杂性,ZooKeeper作为一个能够通用解决这些问题的中间件就应运而生了

ZK 通常指 ZooKeeper,是一个分布式协调服务,在分布式系统中起着关键作用。

从架构上看,ZooKeeper 由服务器集群组成,集群中的节点分为领导者(Leader)、跟随者(Follower)和观察者(Observer)。Leader 负责处理事务请求,比如写操作,同时管理整个集群的状态变化。Follower 用于处理客户端的读请求,并与 Leader 保持数据同步,还参与领导者选举。Observer 可以接收客户端的读请求,能提高集群的读性能,其数据也从 Leader 同步,但不参与选举过程。

在数据存储方面,ZooKeeper 使用类似文件系统的树形数据结构,其中的每个节点称为 znode。znode 可以存储数据,数据格式一般是字节数组,并且每个 znode 都有一个唯一的路径来标识。znode 有多种类型,包括持久节点、临时节点和顺序节点。持久节点在创建后会一直存在,除非被显式删除;临时节点在创建它的客户端会话结束时自动删除,可用于实现分布式锁等功能;顺序节点在创建时会在节点名后加上一个递增的数字,常被用于实现分布式队列等功能。

ZooKeeper 有重要的应用场景。在分布式锁的应用中,通过在 ZooKeeper 上创建临时顺序节点,多个客户端竞争锁时,只有序号最小的节点对应的客户端获得锁使用完后删除节点释放锁

配置管理上,系统的配置信息可以集中存储在 ZooKeeper 的 znode 中,客户端可以对配置节点进行监听,当配置发生改变时,ZooKeeper 会通知客户端,实现配置的动态更新。

对于服务发现,服务提供者将自己的服务信息注册到 ZooKeeper 的某个 znode 下,服务消费者通过查询该节点获取服务提供者列表,并且能通过监听机制及时知晓服务提供者的变化。

此外,ZooKeeper 在一些大型分布式系统中有广泛应用。比如在 Hadoop 生态系统中,它被用于协调多个组件之间的资源分配、任务调度和状态管理等。在 Kubernetes 中,也可以用于集群的管理和协调,保障集群的稳定运行。

 Dubbo

 Dubbo,它是一款高性能、轻量级的开源微服务框架,以下是详细介绍:

待续

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

相关文章:

  • QDateTime修改时区导致时间戳不对的坑
  • MetaHipMer2:从头组装宏基因组
  • ElasticSearch深入解析(十二):聚合——分桶聚合、指标聚合、管道子聚合
  • 安全扫描之 Linux 杀毒软件 Clamav 安装
  • Django + Celery 打造企业级大模型异步任务管理平台 —— 从需求到完整实践(含全模板源码)
  • AI与机器学习深度集成:从设备端能力爆发到开发工具智能化
  • QML ComboBox部件的使用
  • spark分区器
  • 《Python星球日记》 第68天:BERT 与预训练模型
  • EasyRTC嵌入式音视频通信SDK打造带屏IPC全场景实时通信解决方案
  • GMT之Bash语言使用
  • idea挂掉,会导致进程不结束,切换profile环境,导致token认证不通过
  • Git的安装和配置(idea中配置Git)
  • Spring Boot 自动装配技术方案书
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-C. 常用SQL脚本模板
  • LLaMA-Factory 微调 Qwen2-7B-Instruct
  • 数据的模型分析及可视化
  • docker-compose——安装redis
  • 什么是物联网 IoT 平台?
  • 三轴云台之控制算法协同技术篇
  • 【教程】Docker更换存储位置
  • 微信小程序智能商城系统(uniapp+Springboot后端+vue管理端)
  • 如何下载 MySQL 驱动 JAR 包
  • 详细说说Spring的IOC机制
  • Seata源码—1.Seata分布式事务的模式简介
  • Kotlin 协程实战:实现异步值加载委托,对值进行异步懒初始化
  • Flutter 与HarmonyOS Next 混合渲染开发实践:以 fluttertpc_scan 三方库为例
  • 进程信号的学习
  • 游戏盾SDK的防护介绍
  • NC65开发环境(eclipse启动)在企业报表中的报表数据中心里计算某张报表时,一直计算不出数据的解决办法。