什么是Zookeeper?

目录

一.Zookeeper的概念

1.官方解释

2.大白话

3.名字的寓意

二.Zookeeper提供哪些功能?

1.配置管理(配置中心)

2.分布式锁

3.集群管理


一.Zookeeper的概念

1.官方解释

Zookeeper 是一个分布式的协调服务 ,用于管理分布式系统中的配置、命名、同步和组服务。其核心是一个高性能的分布式数据存储(基于内存的树形结构) ,通过ZAB一致性协议 保证数据一致性,为分布式应用提供可靠的协同原语(如分布式锁、选举、状态同步),是构建分布式系统的基础设施。

2.大白话

说白了,就是一个"分布式系统的记事本和电话总机"。

  • 记事本: 所有分布式节点(计算机)都把关键的公共信息(比如配置、谁当老大、服务地址)写在这一个本子上。大家只看这个本子,就不会乱。

  • 电话总机: 当本子上的信息有变化时(比如老大挂了),它会立刻主动通知所有关注这个信息的节点,让它们能马上做出反应。

最终效果是: 让一堆各自为政的机器,能像一支统一指挥的队伍一样协同工作。Hadoop、Kafka这些大型系统都靠它来"管纪律"。

3.名字的寓意

ZooKeeper的名字来源于**"动物园管理员"**。

寓意很简单:它要管理"动物园"里各式各样的"动物"(分布式组件)。

就像动物园管理员负责协调、喂养、管理不同动物一样,ZooKeeper负责协调和管理Hadoop生态圈(这个"动物园")中各种分布式"动物",比如:

  • HBase(大象)

  • Hadoop(大象Logo)

  • Kafka(猫头鹰Logo)

这个名字生动地体现了它作为分布式系统协调者的核心定位------让这些复杂、庞大的"动物"们能有序、可靠地协同工作。

二.Zookeeper提供哪些功能?

1.配置管理(配置中心)

在分布式系统中,我们有三个项目,需要连接同一个数据库,我们确实可以将配置信息分别写在每个项目中,将来修改无非也就是修改三次呗。

但是,系统大了以后,有30个,300个项目都要连同一个数据库呢?修改时手动修改300次?这样代价太大了。

所以此时,我们只需要在配置中心(用zookeeper可以实现)中,写一次数据库的配置即可,让所有项目都连这个配置中心配置的数据库,将来修改时,只需修改一次。

2.分布式锁

当有A和B两个项目时,就不能使用JVM自带的锁(synchronized)了,因为两个项目对应两个JVM,你A项目加锁了,B项目不可能知道啊。

所以此时,应该在第三方设置一个锁(分布式锁),A和B都用这个锁就行了,这样就能互斥了。

3.集群管理

有服务的提供者(provider)、服务的消费者(consumer)两个角色。

provider在注册中心上传自己的服务,consumer在注册中心获取自己想使用的服务。

这就叫集群管理。

以上就是Zookeeper的全部内容,喜欢的话可以留个免费的关注呦~~~

相关推荐
城管不管15 小时前
重生——第九次面试2026.8.13某车一面
分布式·ai·面试·职场和发展·rabbitmq
ly768916 小时前
分布式一致性算法详解:从 2PC、3PC 到 Paxos、Raft、ZAB
分布式·算法
珠***格17 小时前
通信链路全打通:西格电力四可装置的 4G/5G + 加密认证技术详解
大数据·数据库·分布式·5g·架构·能源
ACP广源盛1392462567318 小时前
WAIC2026 国产算力浪潮@ACP#YLB3118 在算力矩阵中的存储定位与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
蜀道山老天师20 小时前
ZABBIX分布式监控Proxy应用实践
分布式·zabbix
liudashuang201721 小时前
Kafka Producer 隐藏深坑:Sender 线程自阻塞(自死锁)导致 BufferExhaustedException 完整复盘
java·分布式·kafka·linq
rustfs1 天前
GitLab 如何与 RustFS 集成?
分布式·rust·gitlab
Francek Chen1 天前
【大数据处理与分析】数据仓库Hive:02 数据湖
大数据·数据仓库·hive·hadoop·分布式·数据分析
starzy19901 天前
Spark 核心之二次排序、分组取 TopN 优化分析
大数据·分布式·spark
悦数图数据库1 天前
千亿点边图谱建设,原生分布式图数据库如何避免单点瓶颈
数据库·分布式