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还具有简单的数据模型、构建集群和顺序访问等功能和特性。

相关推荐
河码匠10 小时前
Kubernetes YAML 详解之网络服务二( Ingress、IngressClasses)
云原生·容器·kubernetes
java1234_小锋10 小时前
Java高频面试题:RocketMQ有哪些使用场景?
java·zookeeper·java-zookeeper
一只大袋鼠10 小时前
高并发系统架构优化(下):突破带宽瓶颈,迈向分布式集群
分布式·系统架构
路小雨~10 小时前
RabbitMQ 全面学习资料
分布式·学习·rabbitmq
blackorbird10 小时前
一个来自法国的基于K8s的规模化扫描集群
云原生·容器·kubernetes
掘根10 小时前
【微服务即时通讯】消息存储子服务2
微服务·云原生·架构
heimeiyingwang10 小时前
【架构实战】分布式事务解决方案
分布式·架构
风向决定发型丶10 小时前
浅谈K8S的Label和Annotation
云原生·容器·kubernetes
2401_8401922711 小时前
监控的作用
分布式·kubernetes
hf20001211 小时前
零成本迁移,原地加速,成本降低60%:火花思维基于云器Lakehouse升级实践
大数据·分布式·spark·lakehouse