什么是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的全部内容,喜欢的话可以留个免费的关注呦~~~

相关推荐
键盘鼓手苏苏7 分钟前
Flutter for OpenHarmony: Flutter 三方库 ntp 精准同步鸿蒙设备系统时间(分布式协同授时利器)
android·分布式·算法·flutter·华为·中间件·harmonyos
Coder_Boy_10 小时前
Java后端核心技术体系全解析(个人总结)
java·开发语言·spring boot·分布式·spring cloud·中间件
星辰_mya11 小时前
Kafka 的 KRaft 模式
分布式·kafka
only-qi12 小时前
RedLock:分布式锁的设计争议与实战踩坑
分布式
yangyanping2010812 小时前
消息队列之消费者如何获取消息
分布式·架构·kafka
AlickLbc13 小时前
RabbitMQ安装记录
分布式·rabbitmq
切糕师学AI13 小时前
Apache ZooKeeper 简介
分布式·zookeeper·apache
Francek Chen13 小时前
【大数据存储与管理】分布式文件系统HDFS:05 HDFS存储原理
大数据·hadoop·分布式·hdfs
星辰_mya14 小时前
Kafka之Broker 磁盘写满 → 整个集群只读
分布式·kafka
星辰_mya14 小时前
Kafka Consumer Group Rebalance 频繁
分布式·kafka