当前位置: 首页 > news >正文

企业门户网站模板html网站实例

企业门户网站模板,html网站实例,怎么知道网站开发语言,网站建设的最终目标概述 在分布式系统中,我们熟知多种一致性模型,包括强一致性、弱一致性、最终一致性、线性一致性、顺序一致性、因果一致性、会话一致性和单调读一致性等。那么,ZooKeeper究竟遵循哪种一致性模型呢? 事务消息传递流程 在探讨 Zo…

概述

在分布式系统中,我们熟知多种一致性模型,包括强一致性、弱一致性、最终一致性、线性一致性、顺序一致性、因果一致性、会话一致性和单调读一致性等。那么,ZooKeeper究竟遵循哪种一致性模型呢?

事务消息传递流程

在探讨 ZooKeeper 的一致性模型之前,我们先来回顾一下 ZooKeeper 的事务处理流程。为了更直观地理解这一过程,我们参考了 ZooKeeper 官方文档中的插图和描述。


所有通信通道都是先进先出(FIFO),所以所有操作都是按顺序进行的。具体来说,遵循以下操作约束:

  • 领导者使用相同的顺序向所有跟随者发送提议。此外,这个顺序遵循请求接收的顺序。由于我们使用 FIFO 通道,这意味着跟随者也会按顺序接收提议。
  • 跟随者按接收顺序处理消息。这意味着消息将按顺序确认(ACK),并且由于 FIFO 通道,领导者将按顺序从跟随者接收确认。这也意味着如果消息 m 已写入非易失性存储,那么所有在 m 之前提议的消息也都已写入非易失性存储。
  • 领导者会在多数从节点确认一条消息后,向所有从节点发出 COMMIT。由于消息是按顺序确认的,领导者会按从节点接收的顺序发送 COMMIT。
  • COMMIT 按顺序处理。从节点在 COMMIT 该提议时,会传递提议消息。

总结如下:当 Leader 收到客户端的请求后,会将该请求封装为一个提议(proposal),并将其发送给所有 Follower。Follower 按照接收到提议的顺序将其存储到本地日志中,并向 Leader 发送ACK消息。当 Leader 收到超过半数 Follower 的ACK后,它会向所有 Follower 发送一个 commit 指令,指示它们可以提交该提议。Follower 接收到 commit 指令后,按照提议的顺序依次执行,从而确保所有副本保持一致。

ZooKeeper是强一致吗?

让我们来看看官网中是如何描述的ZooKeeper一致性保证

从上述分析中可以明确,ZooKeeper 的写操作遵循线性一致性,而读操作则遵循顺序一致性。那么,这两种一致性模型的具体含义是什么呢?

  • 线性一致性(Linearizability):线性一致性是强一致性的一种形式。它要求系统的行为如同所有操作都在一个单一的、连续的时间线上顺序执行。具体而言,对于任意两个操作,系统必须确保它们的执行顺序与它们在时间上的先后顺序完全一致。这意味着,从外部观察者的角度来看,系统的行为就像是所有操作都在某个特定的时间点瞬间完成的,而这些时间点的顺序与操作的实际发起顺序相同。
  • 顺序一致性(Sequential Consistency):顺序一致性要求系统中的操作按照每个节点(或进程)上的发生顺序执行。对于每个节点,操作的执行顺序必须与其在全局时间顺序中的顺序一致。然而,它并不要求不同节点的操作在物理时间上严格遵循先后顺序。换句话说,允许一个节点在本地时间上先读取到旧值,只要整个操作历史对所有节点呈现出一个一致的逻辑顺序即可。顺序一致性是一种介于强一致性和最终一致性之间的中间状态,它比强一致性稍弱,但比大多数最终一致性模型更强。

总之,顺序一致性在保证单个进程内部操作顺序与全局顺序一致的同时,允许一定程度的灵活性,而线性一致性则提供了更强的时间顺序保证,确保操作的执行顺序与它们在时间上的先后顺序完全一致。

如图所示,当 Leader 节点收到多数 Follower 节点的确认(ack)后,会立即执行 commit 操作,并实时向请求方反馈处理成功。然而,在这一瞬间,另一个客户端可能对尚未同步到最新数据的 Follower 节点发起查询。由于查询操作并非事务性操作,Follower 节点可以独立处理。此时,该 Follower 节点可能尚未获取到最新的数据 x,因此会向客户端返回空值。

那么,小明可能会问:ZooKeeper 的机制仅仅如此吗?当然不是,这只是其中的一部分,接下来让我们继续深入探讨。

单一视图保证

确实,在这种读取场景下,ZooKeeper 并未完全实现线性一致性,而是选择了顺序一致性作为其基本保证。然而,ZooKeeper 并未止步于此,它还通过一些额外的机制,使读取操作更接近强一致性。 ZooKeeper单一视图


从上述情况可以了解到,如果客户端曾经连接过一个较新的服务(即具有更大的 zxid),那么它将永远不会尝试连接到较旧的服务,关于这一机制的详细信息,我们可以参考相关的资料,例如 Git 上的相应 Pull Request,以及源码中的具体实现:
git相应PR:ZOOKEEPER-3373:需要更改文档中"单系统映像"保证的描述 #931

源码引用:org.apache.zookeeper.server.ZooKeeperServer#processConnectRequest

结语

回顾我们最初的问题:ZooKeeper 是否实现了强一致性?现在,我们可以给出明确的答案:

此时我想我们可以给出答案了:

  • 事务操作:ZooKeeper 保证了线性一致性,这等同于强一致性。
  • 读操作:虽然 ZooKeeper 主要保证顺序一致性,但它在此基础上进一步补充了单一视图(单调读一致性)和会话一致性。

这些设计选择都是经过精心权衡的结果(trade-off),旨在在性能和一致性之间找到最佳平衡。

http://www.dtcms.com/a/607461.html

相关文章:

  • html个人网站源码推广电话
  • 南京门户网站网页系统制作公司
  • 彩票网站怎么做赚钱sns程序 整合wordpress
  • 中文旅游网站模板下载企业建设网站多少钱
  • 彩妆做推广的网站jsp网站开发遇到的问题
  • [Java EE] 多线程 -- 初阶(3)
  • 网站建设中成本怎么描述推动高质量发展心得
  • 徐州市经济技术开发区建设局网站海尔网站建设的缺点
  • 网站页面组成研艺影楼网站建设
  • 个人网站排版设计企业qq邮箱登录入口
  • LoRaWAN通信协议详解:架构、加密机制与核心应用
  • 佛山 网站北京丰台网站优化
  • 培训班网站建设wordpress登陆可见
  • 网站关键词推广哪家好品牌定位策略
  • 网站 建设 汇报办公室装修效果实景图
  • 福永附近网站建设公司引流推广app
  • css,控制超出部分隐藏,显示... css,控制超出部分不隐藏,换行
  • 网站直播的功能怎样做小程序源码网免费
  • 第三章 Android常见界面控件
  • 上海 顶尖 网站设计主流网站关键词排名
  • 网站建设合同缴纳印花税吗手机分销网站建设
  • 徐州市经济技术开发区建设局网站公司网站如何被收录
  • 【连接器专题】电缆端子压接有关的术语
  • 假发网站是怎么做的wordpress 导入word
  • 网站建设 锐颖科技婚纱摄影网站源码asp
  • 微网站 留言板海外广告投放公司
  • 玩转Docker | 使用Docker部署Dokuwiki个人wiki系统
  • php mysql做网站网站图文列表
  • Spring Boot管理用户数据
  • python 网站开发实例教程邮件营销 wordpress