分布式交易和分布式锁是分布式的困难点。分布式交易的论文可能不会写。从我的习惯逐步引入它的基本概念开始。如果这个概念非常清楚,您可以直接查看“一致性讨论”,而后者则可以进行总结并与他进行交流。。
在日常生活中,许多事情要么是全部做的,要么做所有事情,而且他们不仅要做一部分。B,在广东500中撤回钱,然后a在转移后必须扣除A帐户中的金钱数量,帐户B帐户的数量增加:交易=(A帐户扣除500,B帐户增加500)
看到它,将其放在一起,也就是说,是事务,执行或未执行。如果我们的数据存储在多个数据库中,也就是说,有一个交叉呼叫。因为网络不令人满意,如何确保交易的分布?如果执行一半的电源,该怎么办?只需在解释分布式交易(通常称为酸)之前回顾一下交易的某些特征,以下是一一解释:
在化学中,由分子组成的材料,分子是维持化学特性的最小单元,例如H2O,CO2H2O,CO2等。中子不是我们认为的材料。这里的原子质也是事实,也就是说,交易不能再次分解。例如,上面的事务看起来可以由两个过程组成,但是如果您打开它,则可以打开它。我们并不是我们认为应该有一个过程,因此不能分割事务并具有原子质。
一致性也被充分理解。对于上面的两个帐户,如果银行想知道这里存入了多少钱,那么在执行此交易之前,帐户中有500元。B帐户没有钱。执行后,没有钱,B帐户有500元,也就是说,这500元可以肯定。不可能在A帐户中出现500元人民币,并且B帐户也有500元的元人民币。某些步骤有问题,并且生成了中间数据,那么它是不一致的。
在分布式结果中,同时进行了多个地方查询,结果的结果应相同。
当一项交易未完成时,另一笔交易不会影响它,也就是说,如果b返回C传输1000,则将其记录为交易2:
事务1 =(帐户扣除500,B帐户增加500)
事务2 =(B帐户扣除100000,C帐户增加1000)
这两项交易将不会产生影响,即不会从A将到达C帐户的500元。
取决于,这通常意味着数据写入磁盘中,这不容易变化。这是在提交交易之后,这将影响数据库,不会丢失。这也意味着,随着系统的越来越大,即使原始结构也可以提高可用性,维护,吞吐量等得到改进,在业务计算问题上,数据库仍将进入整个系统中。
酸本质上是为了保护数据的一致性,并且当数据数据耐用时,数据库操作将触发,从而导致效率低,因此围绕一致性(效率)产生了一些讨论,这些(效率)是强大的一致性和较弱的一致性。一致性。
任何读数都可以读取某个数据的最新数据。系统中的所有进程(操作顺序)与全局时钟的顺序一致。简而言之,任何时刻,所有节点中的数据都是相同的,要求数据在更改后立即写入数据库。
更新数据后,不需要编写数据库并及时同步到所有节点,也就是说,目前,数据和真实数据可能具有一些差异。对于体系结构,如果可以容忍后续访问是弱的一致性。
不能保证任何时间上任何节点上的相同数据是相同的,也就是说,某些节点数据可能是准确的,有些数据可能不准确,但是随着时间的流逝,不同节点上的相同数据将是总数据总数它正在沿收敛方向变化。简而言之,一段时间后,节点之间的数据最终将达到一致的状态。
在三个一致性中,强大的一致性数据更可靠,但是由于所有数据库始终保持数据一致,因此效率较低,并且数据不均匀。因此,根据不同的业务选择,实际使用中的数据,一致性也不同。当购物必须强劲时,帐户的帐户支付,但是产品清单数据不一定必须保持一致。至于产品下面的评论,即使您可以选择弱的一致性。
如前所述,群集的AKF拆分原理(REDIS群集拆分原理的AKF)可能意味着硬件性能来自上限。当硬件无法支持请求流量时,可以将流量分配给不同的服务器。y轴和z轴的划分是业务分裂和数据拆分,这将涉及数据在数据库中的分配并存储在不同的地方。这称为“拆分表”。多机机器存储和不同数据库中的负载,因此传统的交易机制酸不能正常运行。
分支表的内容是数据部门,以及分离后数据的定位和集成。特别是,数据切割是将数据分散到多个数据库中,以便单个数据库中的数据量较小,并且通过扩展主机的数量,可以缓解单个数据库性能问题的数量,以实现改善数据库操作性能的目的。
数据切割可以根据其切割类型分为两种方式:垂直(垂直)切割和水平(水平)切割。
垂直分段中有两种类型的垂直数据库和垂直分开表。这两个含义相似。
垂直数据库是根据业务耦合在不同数据库中存储具有低相关性的不同表。该实践类似于大型系统分解为多个小型系统,并且根据业务分类分别进行分配。类似于“ Micro”实践。- 服务治理”,每个微服务使用单独的数据库。如图所示:
例如,与垂直表类似,一张表包含一个人的所有信息,例如名称,身份证,性别,身高,体重,省,城市,地区,村庄,专业G点等。
第一表仅包括基本信息(名称,身份证,性别,身高,体重);
第二个表包括本地信息(省,城市,地区,村庄);
第三个表包括学习信息(专业,G点)。
垂直拆卸优势和垂直部门缺点的优势:
垂直部门的缺点:
在数据库垂直划分的数据库之后,如果库仍然很大,例如存储的数据非常大,则数据库可以水平拆分:
上面的级别根据ID间隔分配时分配。例如:将记录从用户ID分为1到100,000,为第一个库,10001?20000分为第二个库,等等。,某些系统中使用的“冷和冷数据分离”将一些较少的历史数据迁移到其他库。业务功能仅提供热数据查询,这也是类似的实践。
除了根据用户ID间隔分开以上,您还可以执行哈希操作的操作,这将不会在此处进行详细扩展。
水平分裂的优势和缺点是分裂的优势是:
水平分裂的缺点:
子饰面表可以有效地减轻展台和单个库带来的性能瓶颈和压力,突破网络IO,硬件资源和连接的瓶颈。同时,它也带来了一些问题。这些创作要么是执行的,要么全部执行,但是在库后,一项交易可能涉及多个数据库或多个表扩展执行,并且网络是不稳定的订单,以区分传统交易。该库称为分布式交易(交叉交易)。
交叉交易也是分布式交易。没有简单的解决方案。通常,可以使用“ XA协议”和“两个阶段提交”。分配的交易可以最大化数据库操作的原子性。但是,在提交交易时,需要协调多个节点,并且需要推出提交交易的时间点返回延长交易的执行时间。访问共享资源时增加冲突或死锁的概率的可能性。随着数据库节点的增加,这种趋势将变得越来越严重,因此成为了shake系统水平扩展在数据库级别。
最终的一致性需要那些具有高性能的系统,但是一致性要求通常不需要系统的实际时间一致性。只要可以在允许的时间段中实现最终一致性,就可以使用交易补偿方法。从执行期间错误发生后立即滚动的方法不同,交易补偿是后来的补救措施。一些常见的实现方法包括:数据检查 - 检查,基于日志的比较,定期使用相同的标准数据源源源源数据源数据源源代理等等。还与业务系统一起考虑了款项补偿。
为了讨论这一点,我们需要简单地回顾CAP原理和基本理论,因为分布式交易与酸的刚性交易不同。基于分布式场景中的基本理论,提出了灵活交易的概念。要通过灵活交易实现最终一致性,它需要取决于某些特征。这些特征在特定的解决方案中可能无法满足,因为不同的解决方案是不同的。但是,如果他们没有得到满足,就不可能做到这一点。
上限可能已经听到了一百次。许多人说CAP是“三个选择和两个选择”之间的关系,这使人们错误地认为存在AC情况,但是实际的CAP是第二选择。这是在2012年。有一篇论文解释:十二年后:“规则”如何变化
还有另一篇文章:收获,产量和可扩展的耐受性系统,本文是基于上述“ CAP 12年”论文撰写的。讨论更加小心。放松和约束之后。
为什么P是必须的?为什么在CAP原理中具有分区的容错性?首先,您必须了解什么是分区容错,分区,这是网络,网络群集设计为许多服务器,网络在某个时刻不稳定,网络不稳定,网络不稳定。等效于将网络分为不同的领域。
向分区1发出一条消息:A转移到B 100元到B的消息,并向分区发送消息:a转移到B 200元到b。
因此,对于两个分区,有两种情况:
a)没有有用性,即至少一项交易不会被这两项交易所接受;
b)没有一致性,一半看到100元转移到B,另一半看到向B转移200元。
因此,必须满足分区耐受性。该策略的解决方案是将一个数据项复制到多个节点。分区出现后,此数据项可以分布在各个区域。耐受性有所改善。
在许多情况下,我们不需要强大的一致性系统,因此,当人们争论数据一致性和可用性时,它主要集中在强一致性或最终一致性的基础上。基础在CAP一致性一致的是性和可用性称重的结果,源于大型互联网分布式系统实践的摘要,该系统是根据CAP定律逐渐进化的。每个应用程序都可以根据自己的业务特征以适当的方式使系统保持一致。
基础理论是三个短语的缩写:基本上可用,柔软状态,最终是一致的。
基本上,可以使用假设系统,并且发生了不可预测的故障,但仍然可以使用。与普通系统相比:
这基本上可用
与原子度相比,多个节点的数据副本是一致的,这是“硬状态”。软状态指的是:允许系统中的数据具有中间状态,并且据信状态不影响状态系统的总体可用性,即,在多个不同节点下数据的数据副本具有数据延迟。
上面的柔软状态,然后不能总是柔软。必须有一个时间限制。截止日期后,应保证所有副本以保持数据一致性以实现数据的最终一致性。此时间段取决于网络潜伏期,系统负载,数据复制方案设计和其他因素等因素。
基本的核心思想是:由于无法实现强大的一致性,但是每个应用程序都可以根据自己的业务特征来实现最终的一致性。基本理论,您可以开始告诉分布式交易的处理。
在提交的第二阶段(2pc:两阶段提交),如名称所示,该协议将分布式事务过程分为两个阶段:投票和事务提交。指定一个协调器单点,以协调整个数据库群集的节点的操作。为了简化说明,我们将数据库群集中的节点称为参与者。三个阶段提交协议还包括协调员和参与者的两个角色的定义,然后稍后讨论。
第一阶段:投票阶段的主要目的是询问数据库集群中的每个参与者是否可以正常实施事务。具体步骤如下:
第二阶段:在协调员的第一阶段之后进行交易的调查之后,每个参与者将回复其事务的执行。目前,有3种可能性:
对于第一种情况,协调员将向所有参与者发出通知,具体步骤将如下:
在第二个和第三个案例中,协调员认为参与者无法成功执行交易。为了使整个集群数据保持一致,他们必须向各种参与者发送交易以回滚通知。具体步骤如下:
两个阶段提交协议解决了强分布数据库数据的问题。实际的应用程序更多是为了解决交易操作的原子量。下图描述了协调员和参与者的状态转换。
从协调员的角度来看,在启动投票之后,我进入了等待状态,等待所有参与者回复他们的交易,并在收到所有参与者的答复之后
从参与者的角度来看,当协调员的投票请求被偿还时,他们输入了准备状态(可以正常执行交易),接下来的事情是等待协调员的最终决定通知。
在两个阶段提交协议的原则很简单易于实施,但缺点也很明显,包括以下内容:
在两个阶段的提交过程中,协调员在提交过程中起关键作用。一旦协调器所在的服务器,它将影响整个数据库群集的正常操作。阻止状态,整个数据库群集将无法提供服务。
在实施两个阶段提交期间,所有参与者都需要遵守协调员的统一计划。在此期间,他们处于阻碍状态,无法从事其他行动。这非常低。
尽管两个阶段提交协议是由强分布数据设计的,但仍然存在数据不一致的可能性。例如,在第二阶段,假设协调员发出了提交通知,但是由于网络问题仅由网络问题接收和执行。一些参与者,其余参与者由于未收到通知而处于阻碍状态。这次,数据不一致。
对于上述问题,可以在很大程度上解决超时机制和访谈机制。
对于协调员,如果指定时间内所有参与者的响应,则可以自动退出等待状态并将回滚通知发送给所有参与者。对于参与者,如果它位于现成状态,则是第二阶段的通知,但未在指定的时间内收到协调员,因此不能任意执行回滚操作,因为协调员可以发送提交通知。目前,将执行回滚。结果,数据不一致。
目前,我们可以干预相互的查询机制,并让参与者询问其他参与者的执行。如果B执行回滚或提交操作,则A可以大胆地执行与B相同的操作;如果目前尚未达到现成状态,则可以推断协调员必须是回滚通知;如果b也位于就绪状态,以便a可以继续询问另一个参与者。在长时间的阻塞中。
第三阶段提交协议(3PC:三相提交)已提交给问题的两个阶段,第三阶段提交协议将通过引入预阶段阶段和介绍整个集群的阻塞时间和整个集群的阻滞时间。超时策略。在第三阶段提交的三个阶段是:pre -_commit,pre_commit和事务提交(do_commit)。
第一个阶段:pre -Quire这个阶段的协调员将询问每个参与者是否可以正常执行自己的事务,并且参与者根据自己的情况回复了估计的价值。与实际执行相比,此过程是轻量级的。特定步骤是特定的。如下:
第二阶段:在此阶段,预启动的协调员将根据第一阶段的结果进行相应的操作。查询结果的三种主要类型:
为了回应第一种情况,协调员将向所有参与者发送请求。具体步骤如下:
在上述步骤中,如果参与者在等待时间,他们将中断交易。在对第二和第三案件的回应中,协调员认为不能正常实施事务,因此向每个参与者发出了中止通知以要求退出准备状态。具体步骤如下:
第三阶段:如果交易在交易的第二阶段中提交,则不会中断,则此阶段的协调员将根据交易执行返回的结果来决定或退回交易,分为三种情况:
为了回应第一种情况,协调员提出了向每个参与者提交业务的请求。具体步骤如下:
为了回应第二和第三案,协调员认为不能成功实施事务,因此请求将发送给每个参与者。具体步骤如下:
在此阶段,如果由于协调员或网络问题,参与者无法接收协调员的提交或回滚请求,那么参与者将不会被阻止,就像在两个阶段中提交一样。减少了同步阻塞,它仍然无法完全避免数据的不一致。两级提交协议中长期阻塞状态的概率仍然非常低,因此,尽管三个阶段提交协议比一致性更保证了在两个阶段中,在实际系统中,它更受欢迎。
TCC是尝试,确认和取消的第一个字母的第一个字母。他们的单独责任是:
尝试:负责保留资源(例如创建新状态=待处理顺序);
要进行业务检查,仅保留所占用的资源;
隔离保留资源。
确认:负责保留资源
真正的执行业务使用在尝试阶段,权力等中保留的资源。
取消:负责撤销保留资源
用户需要根据自己的业务场景实施,确认和取消;事务发起者在第一阶段执行尝试方法,在第二阶段提交确认方法,并在第二阶段执行取消方法。
关于保留资源,我们必须说两个单词,并且资源有限,因此保留资源有时是有效的。如果保留资源很慢以获得确认 - 我们将这种情况称为超时 - 参与方将能够自行携带。由于发起者的问题。
TCC添加了业务检查和撤销交易的功能。在同一时间,TCC将2PC数据库级别的移动提高到了服务级别。不同之处在于,TCC的所有运动都是当地事务。完成每项本地事务后,该措施完成后完成数据库:
过程步骤:
该过程和两个阶段非常相似。
资料来源:https://www.cnblogs.com/courage129/p/144433462.html