当前位置:首页 > 工业控制 > 工控仪表
[导读] 随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。 为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型

随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。

为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在《分布式系统的一致性探讨》一文中主要介绍了分布式系统中存在的一致性问题。本文将简单介绍如何有效的解决分布式的一致性问题,其中包括什么是分布式事务,二阶段提交和三阶段提交。

分布式一致性回顾

在分布式系统中,为了保证数据的高可用,通常,我们会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上。为了对用户提供正确的增删改差等语义,我们需要保证这些放置在不同物理机器上的副本是一致的。

为了解决这种分布式一致性问题,前人在性能和数据一致性的反反复复权衡过程中总结了许多典型的协议和算法。其中比较著名的有二阶提交协议(Two Phase Commitment Protocol)、三阶提交协议(Two Phase Commitment Protocol)和Paxos算法。

分布式事务

分布式事务是指会涉及到操作多个数据库的事务。其实就是将对同一库事务的概念扩大到了对多个库的事务。目的是为了保证分布式系统中的数据一致性。分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果(全部提交或全部回滚)

在分布式系统中,各个节点之间在物理上相互独立,通过网络进行沟通和协调。由于存在事务机制,可以保证每个独立节点上的数据操作可以满足ACID。但是,相互独立的节点之间无法准确的知道其他节点中的事务执行情况。所以从理论上讲,两台机器理论上无法达到一致的状态。如果想让分布式部署的多台机器中的数据保持一致性,那么就要保证在所有节点的数据写操作,要不全部都执行,要么全部的都不执行。但是,一台机器在执行本地事务的时候无法知道其他机器中的本地事务的执行结果。所以他也就不知道本次事务到底应该commit还是 roolback。所以,常规的解决办法就是引入一个“协调者”的组件来统一调度所有分布式节点的执行。

XA规范

X/Open 组织(即现在的 Open Group )定义了分布式事务处理模型。 X/Open DTP 模型( 1994 )包括应用程序( AP )、事务管理器( TM )、资源管理器( RM )、通信资源管理器( CRM )四部分。一般,常见的事务管理器( TM )是交易中间件,常见的资源管理器( RM )是数据库,常见的通信资源管理器( CRM )是消息中间件。 通常把一个数据库内部的事务处理,如对多个表的操作,作为本地事务看待。数据库的事务处理对象是本地事务,而分布式事务处理的对象是全局事务。 所谓全局事务,是指分布式事务处理环境中,多个数据库可能需要共同完成一个工作,这个工作即是一个全局事务,例如,一个事务中可能更新几个不同的数据库。对数据库的操作发生在系统的各处但必须全部被提交或回滚。此时一个数据库对自己内部所做操作的提交不仅依赖本身操作是否成功,还要依赖与全局事务相关的其它数据库的操作是否成功,如果任一数据库的任一操作失败,则参与此事务的所有数据库所做的所有操作都必须回滚。 一般情况下,某一数据库无法知道其它数据库在做什么,因此,在一个 DTP 环境中,交易中间件是必需的,由它通知和协调相关数据库的提交或回滚。而一个数据库只将其自己所做的操作(可恢复)影射到全局事务中。

XA 就是 X/Open DTP 定义的交易中间件与数据库之间的接口规范(即接口函数),交易中间件用它来通知数据库事务的开始、结束以及提交、回滚等。 XA 接口函数由数据库厂商提供。

二阶提交协议和三阶提交协议就是根据这一思想衍生出来的。可以说二阶段提交其实就是实现XA分布式事务的关键(确切地说:两阶段提交主要保证了分布式事务的原子性:即所有结点要么全做要么全不做)

2PC

二阶段提交(Two-phaseCommit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。通常,二阶段提交也被称为是一种协议(Protocol))。在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。因此,二阶段提交的算法思路可以概括为:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。

所谓的两个阶段是指:第一阶段:准备阶段(投票阶段)和第二阶段:提交阶段(执行阶段)。

准备阶段

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

(全球TMT2023年8月21日讯)2023年8月18日,DEKRA德凯为中兴通讯颁发了IEC 62443-4-1网络安全产品开发生命周期Maturity Level 3(ML3)成熟度三级证书。同时,中兴通讯数字能源...

关键字: 中兴通讯 网络安全 LEVEL 工控

摘要:为解决YL21改型复合滤棒成型机料斗卡棒的问题,结合目前实际情况,设计了一种料斗改进系统,能够有效地减少出现卡棒问题的概率。影响YL21改型复合滤棒成型机卡棒的主要原因有两种:一是少部分原棒本身的质量问题,二是料斗...

关键字: 复合滤棒 卡尔曼滤波算法 工控

‍‍猛男如何学嵌入式,关注@我要学嵌入式,嵌入式男人的加油站。这两天网传爱奇艺裁员,甚至高达50%的裁员率。这个事本身没什么好说的,只想借着这个事,简单聊几点认知,大家也可以一起思考讨论一下。01 人无百日好花无百日红。...

关键字: 互联网 嵌入式 工控 医疗电子

最近一直在忙着上企业培训的课。年底了,很多拖了很久的课程拖不下去必须交付了。这两天网传爱奇艺裁员,甚至高达50%的裁员率。这个事本身没什么好说的,只想借着这个事,简单聊几点认知,大家也可以一起思考讨论一下。1人无百日好花...

关键字: 互联网 工控 医疗电子 嵌入式

根据市场调查机构RAM最新发布的工控安全报告,2020年全球工业网络安全市场规模估计为152亿美元,预计到2026年达到223亿美元。在分析期内工业网络安全市场将以6.6%的年复合增长率增长,细分领域安全服务年复合增长率...

关键字: 工控

截止8月底,国内上市工控企业半年报已基本出炉。数据显示,虽然每家企业的总营收同比差异较大,但在自动化业务数据上,均出现同比增长的态势。去年爆发的新冠疫情给工业领域造成了深远的影响,疫情导致的工厂复工难、物流运输受阻、原材...

关键字: 工控 自动化

疫情下,汇川进口化替代的情况导致业绩大涨。如果未来2年疫情消退,汇川是否保持增长,难以预测。按保守估计,估值给40倍PE,如果乐观情况,进口化替代持续,可以给50~60倍PE。

关键字: 工控 汇川

点击上方OFweek工控关注我们,了解更多工控行业前沿动态和知识干货。  随着物联网、大数据、人工智能等先进IT技术的快速发展,制造业为重塑企业核心竞争力,正加速推动IT与OT的融合,改造传统的生产关系与业务流程,从产品...

关键字: 工控 工业互联网

点击上方OFweek工控关注我们,了解更多工控行业前沿动态和知识干货。导读daodu作者:OFweek工控经过十几年的发展,公司已经成为了工控界的龙头企业,并且获得业界的众多关注,更被称为工控界的“小华为”,目前市值已经...

关键字: 华为 工控

点击上方OFweek工控关注我们,了解更多工控行业前沿动态和知识干货。工控机是一种采用总线结构,对生产过程及机电设备、工艺装备进行检测与控制的工具总称。工控机具有重要的计算机属性和特征,如具有计算机CPU、硬盘、内存、外...

关键字: 工控 常见故障
关闭
关闭