[从Paxos到ZooKeeper][分布式一致性原理与实践]<一>

目录

  • 分布式架构

    • 从集中式到分布式
    • 从ACID到CAP/BASE
  • 一致性协议
    • 2PC与3PC
    • Paxos算法
  • Paxos的工程实践
    • Chubby
    • Hypertable
  • Zookeeper与Paxos
    • 初始Zookeeper
    • Zookeeper的ZAB协议
  • 使用Zookeeper
    • 部署与运行
    • 客户端脚本
    • Java客户端API
    • 开源客户端
  • Zookeeper的典型应用场景
  • Zookeeper技术内幕
    • 系统模型
    • 序列化与协议
    • 科幻端
    • 会话
    • 服务器启动
    • leader选举
    • ...
  • Zookeeper运维

Chap1 分布式架构

从集中式到分布式

  • 集中式:由一台或多台主计算机组成中心节点,数据集中存储于这个中心节点中。部署结构简单,不用考虑多个节点之间的分布式协作问题。
  • 分布式:
    • 分布式系统定义:分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。
    • 分布式系统特征:
      • 分布性:空间上任意分布;
      • 对等性:计算机没有主从之分,所有节点都是对等的。副本是分布式系统最常见的概念之一,指的是分布式系统对数据和服务提供的一种冗余方式,以对外提供高可用的服务;
      • 并发性:计算机网络中,程序运行过程中的并发性操作是很常见的行为。例如一个分布式系统中的多个节点,可能会并发地操作一些共享的数据,如何准确并高效地协调分布式并发操作时分布式系统架构和设计中最大的挑战之一;
      • 缺乏全局时钟:一个典型的分布式系统是由一系列空间任意的多个进程组成,进程间通过交换消息来通信。因此,在分布式系统中,很难定义两个时间究竟谁先谁后,原因就是分布式系统中缺乏一个全局的时钟序列控制。[注:关于分布式系统时钟可参考经典论文:Time, Clocks, and the Ordering of Events in a Distributed System]
      • 故障总会发生:在系统实际运行过程中还会遇到很多在设计时为考虑到的异常故障。

分布式环境的各种问题

  • 通信异常:网络本身的不可靠性,消息丢失和消息延迟非常普遍。
  • 网络分区:当网络由于异常而导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式系统的所有节点中,只有部分节点间能正常通信,该现象称为网络分区,俗称“脑裂”。在极端情况下,这些局部小集群会独立完成原本需要整个分布式系统才能完成的功能,包括对数据的事务处理,这就对分布式一致性提出了非常大的挑战。
  • 三态:分布式系统的每一次请求与响应,存在特有的“三态”概念,即成功、失败与超时。(不同于传统单机,能够得到明确的响应:成功或失败。)
  • 节点故障:每个节点都有可能故障。

从ACID到CAP/BASE

ACID

  • 事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元,狭义上的事务特指数据库事务。

    • 一方面,当多个应用程序并发访问数据库时,事务可以在这些应用程序之间提供一个隔离方法,以防止彼此操作互相干扰;
    • 另一方面,事务为数据库操作序列提供了以个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持数据一致性的方法。
  • 事务的ACID特性:
    • 原子性(Atomicity):事务必须是一个原子的操作序列单元。只允许出现“全部执行成功”和“全部不执行”两种状态。
    • 一致性(Consistency):事务的执行不能破坏数据库数据的完整性和一致性。一个事务在执行前后,数据库都必须处于一致性状态。也就是说,事务执行的结果必须是使数据库从一个一致性状态转变到另一个一致性状态。
    • 隔离性(Isolation):在并发环境中,并发的事务是相互隔离的,一个事务的执行不能被其他事务干扰。也即,不同的事务并发操作相同数据时,每个事务都有各自完整的数据空间。[关于隔离性的更多内容戳事务隔离性]
时间: 2024-11-24 13:38:35

[从Paxos到ZooKeeper][分布式一致性原理与实践]<一>的相关文章

《从PAXOS到ZOOKEEPER分布式一致性原理与实践》pdf

下载地址:网盘下载 内容简介  · · · · · · <Paxos到Zookeeper:分布式一致性原理与实践>从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议.同时,本书深入介绍了分布式一致性问题的工业解决方案--ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法.内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper.全书共8章,分为五部分:第一

[从Paxos到ZooKeeper][分布式一致性原理与实践]&lt;二&gt;一致性协议

Overview 在<一>有介绍到,一个分布式系统的架构设计,往往会在系统的可用性和数据一致性之间进行反复的权衡,于是产生了一系列的一致性协议. 为解决分布式一致性问题,在长期的探索过程中,涌现了一大批经典的一致性协议和算法,其中最著名的就是二阶段提交协议.三阶段提交协议和Paxos算法了. 2PC与3PC 分布式系统中,每个机器节点虽然都能明确知道自己在进行事务操作过程中的结果是失败or成功,但却无法直接获取到其他分布式节点的操作结果. 因此,当一个事务操作需要跨越多个分布式节点的时候,为了

&lt;从PAXOS到ZOOKEEPER分布式一致性原理与实践&gt;读书笔记-ZAB协议

本文属于分布式系统学习笔记系列,上一篇笔记整理了paxos算法,本文属于原书第四章,梳理zookeeper的目标特性及ZAB协议. 1.介绍zookeeper 1.1ZooKeeper保证一致性特性 ZooKeeper是一个典型的分布式数据一致性的解决方案,分布式程序可以基于它实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调通知.集群管理.master选举.分布式锁.分布式队列等功能.ZooKeeper可以保证如下分布式一致性特性. 1.顺序一致性: 从同一个客户端发起的事务请求,最终将严

&lt;从PAXOS到ZOOKEEPER分布式一致性原理与实践&gt;读书笔记-两阶段提交与三阶段提交

一.背景 本书第一章的分布式架构,写了从单机的acid到分布式的CAP.参见之前的文章.本篇是第二章的一致性协议部分,分两篇整理. 在分布式系统中,为了保证数据的高可用,通常,我们会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上.为了对用户提供正确的增\删\改\查等语义,我们需要保证这些放置在不同物理机器上的副本是一致的. 为了解决这种分布式一致性问题,有很多经典算法:如二阶段提交.三阶段提交,paxos算法. 二.二阶段提交(2PC) 二阶段提交(Two-phaseC

《从Paxos到ZooKeeper 分布式一致性原理与实践》读书笔记

一.分布式架构 1.分布式特点 分布性 对等性.分布式系统中的所有计算机节点都是对等的 并发性.多个节点并发的操作一些共享的资源 缺乏全局时钟.节点之间通过消息传递进行通信和协调,因为缺乏全局时钟,很难定义两个事件谁先谁后 故障总是会发生.系统设计时,需要考虑到任何异常情况 2.分布式环境的各种问题 通信异常.分布式系统中的某些节点之间无法正常通信 网络分区.这有部分节点可以正常通信,有些无法正常通信.这种现象称为网络分区,也称为"脑裂" 三态.节点之间的一次通信存在三种状态:成功.失

2月22日 《从Paxos到Zookeeper 分布式一致性原理与实践》读后感

工作中使用的场景: 工作中使用dubbo微服务,其中注册中心是由zk提供的,于是课余时光就读了此本zk经典之作 节点名为java接口的类名 节点下包括了服务提供者,消费者等子节点 提供者: 消费者: 由于是最底层微服务,所以消费的注册的比较多 zk的特点: 分布式一致性的解决方案,包括:顺序一致性,原子性,单一视图,可靠性,实时性 zk的基本概念: 集群角色:not Master/Slave,is Leader/Follower/Observer 会话:TCP长连接 数据节点(Znode) 版本

从Paxos到Zookeeper 分布式一致性原理与实践(一)

1.分布式一致性问题 假设客户端C1将系统的K由V1更新为V2,但客户端C2无法立即读取到K的最新值,需要在一段时间才能读取到.-------数据库之间复制的延迟问题. 数据复制需求:1.为了增加系统的可用性,以防止单点故障引起的系统不可用.2.提高系统的整体性能,通过负载均衡技术,能够让分布在不同地方的数据副本都能够为用户提供服务. 所谓分布式一致性问题,是指分布式环境中引入数据复制机制后,不同数据节点间可能出现的,并无法依靠计算机应用程序自身解决的数据不一致情况.简单地讲,数据一致性就是指在

《从Paxos到Zookeeper:分布式一致性原理与实践》【PDF】下载

内容简介 Paxos到Zookeeper分布式一致性原理与实践从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议.同时,本书深入介绍了分布式一致性问题的工业解决方案--ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法.内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper.全书共8章,分为五部分:前一部分(第1章)主要介绍了计算机系统从集中式向分布式系统

读&lt;分布式一致性原理&gt;初识zookeeper

zookeeper是什么 zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如:数据发布/订阅,负载均衡,命名服务,分布式协调/通知 ,集群管理,Master选举,分布式锁和分布式队列等功能.zookeeper可以保证如下分布式一致性特性. 顺序一致性 从同一个客户端发起的事务请求,最终将会严格的按照发起顺序被应用到zookeeper中去. 原子性 所有的事务请求的处理结果在整个集群中所有机器上的应用情况是一致的,也就是说,要么整个集群所有机器都成功应用了某