Zookeeper简介

系列文章目录

Zookeeper安装教程


目录

一、Zookeeper简介

二、Zookeeper的数据结构

三、CPA理论

[四、BASE 理论](#四、BASE 理论)

五、ZooKeeper的特性


前言

这是我的学习笔记,以便后面翻阅。


一、Zookeeper简介

ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务,它是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。

ZooKeeper的目标是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。它以Fast Paxos算法为基础,通过选举产生一个领导者(leader),只有领导者才能提交提议,从而解决了Paxos算法存在的问题。

ZooKeeper为分布式应用提供了一致性服务,其功能包括配置维护、域名服务、分布式同步、组服务等。它还提供了分布式独享锁、选举、队列的接口,其中分布锁和队列有Java和C两个版本,选举只有Java版本

二、Zookeeper的数据结构

zookeeper 提供的名称空间类似于标准文件系统,key-value 的形式存储。名称 key 由斜线 / 分割的一系列路径元素,zookeeper 名称空间中的每个节点都是由一个路径标识。

三、CPA理论

CAP 理论指出对于一个分布式计算系统来说,不可能同时满足以下三点:

  • **一致性(Consistency):**在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性,等同于所有节点访问同一份最新的数据副本。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态。

  • **可用性(Availability):**每次请求都能获取到正确的响应,但是不保证获取的数据为最新数据。

  • **分区容错性(Partition tolerance):**分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。

一个分布式系统最多只能同时满足一致性、可用性和分区容错性这三项中的两项。但是P 是必须的,因此只能在 CP 和 AP 中选择,zookeeper 保证的是 CP,对比 spring cloud 系统中的注册中心 eruka 实现的是 AP。

四、BASE 理论

BASE 理论是对 CAP 中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

  • **基本可用(Basically Available):**在分布式系统出现故障,允许损失部分可用性(服务降级、页面降级)。

  • **软状态(Soft-state):**允许分布式系统出现中间状态。而且中间状态不影响系统的可用性。这里的中间状态是指不同的 data replication(数据备份节点)之间的数据更新可以出现延时的最终一致性。

  • **最终一致性(Eventually Consistent):**data replications 经过一段时间达到一致性。

五、ZooKeeper的特性

  • 顺序一致性:从一个客户端发起的事务请求,最终都会严格按照其发起顺序被应用到ZooKeeper中。
  • 原子性:所有事务请求的处理结果在整个集群中所有机器上都是一致的,不存在部分机器应用了该事务,而另一部分没有应用的情况。
  • 单一视图:所有客户端看到的服务端数据模型都是一致的。
  • 可靠性:一旦服务端成功应用了一个事务,则其引起的改变会一直保留,直到被另外一个事务所更改。
  • 实时性:一旦一个事务被成功应用后,ZooKeeper可以保证客户端立即可以读取到这个事务变更后的最新状态的数据。

此外ZooKeeper还具有简单的数据模型、构建集群和顺序访问等功能和特性。

相关推荐
海上小飞龙13 小时前
Redis 分布式锁原理:从 SET NX EX 到 Redisson 看门狗
数据库·redis·分布式
明达智控技术14 小时前
国产PLC、远程IO模块在食品包装机的应用
分布式·自动化
云川之下16 小时前
【k8s】NAD(NetworkAttachmentDefinition)与SR‑IOV‑Operator 关系
云原生·容器·kubernetes
YOU OU19 小时前
RabbitMQ应用问题
分布式·rabbitmq
ZzzZZzzzZZZzzzz…19 小时前
K8S实战:NFS+StorageClass+PV/PVC+Deployment
运维·云原生·容器·kubernetes·storageclass·linux运维·持久卷
海兰1 天前
云原生持续交付平台 Zadig 在 Ubuntu 24.04 上的部署及使用指南
linux·ubuntu·云原生
YOU OU1 天前
RabbitMQ高级特性
分布式·rabbitmq
云川之下1 天前
【k8s】sriov‑device‑plugin、sriov‑network‑config‑daemon详解
云原生·容器·kubernetes
珠***格1 天前
双碳目标下:四可装置如何助力光伏消纳与碳数据上报
网络·人工智能·分布式·安全·边缘计算
科力锐品牌君1 天前
行业龙头|科力锐全链路防勒索 + 多中心容灾方案,构筑河南翔宇医疗业务安全闭环!
网络·数据库·分布式·安全·数据安全·备份