万字长文带你入门Zookeeper(一)

80 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第40天,点击查看活动详情

之前在其他平台发表过的文章,今天分享在掘金,跟大家一起学习~

Zookeeper简介

ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。ZooKeeper是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。

Zookeeper的工作机制

如图所示,服务器上线时,会将服务器的信息注册到Zookeeper中,客户端会从Zookeeper获取服务器信息列表,进行注册监听,当服务器节点下线或异常时,会通知Zookeeper,Zookeeper进而通知客户端。简单来说,Zookeeper就相当于一个文件系统(存储管理元数据信息)+通知机制。 在这里插入图片描述 从设计模式角度来理解,Zookeeper是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理数据信息,并接受观察者的注册,一旦数据信息发生变化,Zookeeper就负责通知已经注册的这些观察者,让观察者们作出相关的反映。

Zookeeper的特点

在这里插入图片描述

  • Zookeeper是由一个Leader和多个Follower组成的集群
  • 集群中只要有半数以上节点存活,Zookeeper集群就能正常服务,所以Zookeeper适合安装基数台服务器
  • 全局数据一致:每个Server保存一份相同的数据副本
  • 更新请求顺序执行,来自同一个Client的更新请求按照其发送顺序依次执行(先来的请求先处理)
  • 数据更新原子性,一次数据更新要么成功,要么失败
  • 实时性,在一定时间范围内,Client能读到最新的数据