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

相关推荐
spiker_1 小时前
RabbitMQ 常见使用模式详解
分布式·rabbitmq
不能再留遗憾了1 小时前
RabbitMQ 高级特性——持久化
分布式·rabbitmq·ruby
成为大佬先秃头1 小时前
解决RabbitMQ设置TTL过期后不进入死信队列
分布式·中间件·rabbitmq·java-rabbitmq
七夜zippoe4 小时前
分布式系统实战经验
java·分布式
nomi-糯米4 小时前
Fisco Bcos 2.11.0配置console控制台2.10.0及部署调用智能合约
分布式·网络安全·区块链·智能合约·分布式账本
喜欢猪猪5 小时前
Kafka是如何保证数据的安全性、可靠性和分区的
分布式·kafka
芊言芊语5 小时前
分布式消息服务Kafka版的详细解析和配置方式
分布式·kafka
Alluxio5 小时前
选择Alluxio来解决AI模型训练场景数据访问的五大理由
大数据·人工智能·分布式·ai·语言模型
沛沛老爹5 小时前
服务监控插件全览:提升微服务可观测性的利器
微服务·云原生·架构·datadog·influx·graphite
武子康6 小时前
大数据-133 - ClickHouse 基础概述 全面了解
java·大数据·分布式·clickhouse·flink·spark