我经常在关于NoSQL,数据网格等的不同演讲中听到最终一致性。似乎最终一致性的定义在许多来源中有所不同(甚至可能取决于具体的数据存储)。
谁能简单解释一下最终一致性是什么,与任何具体的数据存储无关?
假设您有一个应用程序及其副本。然后您必须向应用程序添加新数据项。
然后应用程序将数据同步到下面显示的其他副本
同时,新客户端将从一个尚未更新的副本中获取数据。在这种情况下,他无法获得正确的最新数据。因为同步需要一些时间。在那种情况下它还没有最终的一致性
问题是我们如何最终保持一致?
为此,我们使用调解器应用程序来更新/创建/删除数据,并使用直接查询来读取数据。有助于最终保持一致性
最终一致性:
基本上,由于跨多个服务器复制数据需要时间,因此读取数据的请求可能会转到具有新副本的服务器,然后转到具有旧副本的服务器。术语“最终”意味着最终数据将被复制到所有服务器,因此它们都将具有最新的副本。
如果您想要低延迟读取,最终一致性是必须的,因为响应服务器必须返回自己的数据副本,没有时间咨询其他服务器并就数据内容达成相互一致。我写了一篇博文对此进行了更详细的解释。
最终一致性:
最终,所有的服务器(你、我、你的邻居)都知道了真相(明天会下雨),但与此同时,客户(他的妻子)离开时认为会是晴天,尽管她询问了一个或多个服务器(你和我)的最新值。
与严格一致性/ACID合规性相反:
在任何时候,您的余额都不能反映任何东西,而不是您帐户上所有交易的实际总和。
如此多的非关系型数据库系统具有最终一致性的原因是,几乎所有这些系统都被设计成分布式的,对于完全分布式的系统,保持严格一致性的开销是超线性的(这意味着您只能在事情开始变慢之前扩展到目前为止,当它们开始变慢时,您需要在问题上投入指数级的更多硬件来保持扩展)。
主要内容:一个简短的英语自我介绍【篇1】,一个简短的英语自我介绍【篇2】,一个简短的英语自我介绍【篇3】,一个简短的英语自我介绍【篇4】,一个简短的英语自我介绍【篇5】,一个简短的英语自我介绍【篇6】,一个简短的英语自我介绍【篇7】,一个简短的英语自我介绍7篇 一个简短的英语自我介绍?其实一份好的自我介绍是很容易写好的,只要你把自己优秀的那一面展现出来,把自己的基本信息讲清楚就可以了。下面小编给大家带来了一个简短的英语自我介绍,供大家参考。 一个简短的英语自我介绍【篇1】 Dear teache
主要内容:一段简单的英语自我介绍篇1,一段简单的英语自我介绍篇2,一段简单的英语自我介绍篇3,一段简单的英语自我介绍篇4,一段简单的英语自我介绍篇5,一段简单的英语自我介绍篇6,一段简单的英语自我介绍篇7,一段简单的英语自我介绍7篇 一段简单的英语自我介绍?在我们做自我介绍的时候,要注意将重点放在介绍自己在综合及专业理论素质和实际动手能力方面的优势上。下面小编给大家带来了一段简单的英语自我介绍,供大家参考。 一段简单的英语自我介绍篇1 Good afternoon, teachers! Toda
使用CQRS和事件存储,微服务之间的编排提供了最终的一致性,其中一个微服务中的更改需要一点时间传播到其他相关的下游系统(本质上是其他微服务)。如果数据非常关键,以至于两个微服务都应该具有很强的数据一致性,那么有什么选择呢?我能想到的一个选择是像数据网格那样的直写缓存,但这非常脆弱,特别是在分布式系统中。
我在网上找到两个定义: 顺序一致性——任何执行的结果都是相同的,就像所有处理器的操作都是按某种顺序执行的一样,每个处理器的操作按程序指定的顺序出现在这个顺序中。 最终一致性——如果没有对给定的数据项进行新的更新,最终对该项的所有访问都将返回最后更新的值。 定义对我来说很清楚。但是,当最终一致性不是顺序时,我没有得到。例如:mem 中的初始值为 0。水平轴是时间。 因此,有一些顺序,如果我们在 (x
主要内容:简单大方的英语口语自我介绍篇1,简单大方的英语口语自我介绍篇2,简单大方的英语口语自我介绍篇3,简单大方的英语口语自我介绍篇4,简单大方的英语口语自我介绍篇5,简单大方的英语口语自我介绍篇6,简单大方的英语口语自我介绍篇7,简单大方的英语口语自我介绍7篇 简单大方的英语口语自我介绍?其实一份好的自我介绍是很容易写好的,只要你把自己优秀的那一面展现出来,把自己的基本信息讲清楚就可以了。下面小编给大家带来了简单大方的英语口语自我介绍,供大家参考。 简单大方的英语口语自我介绍篇1 Look,