两阶段提交是什么?

两阶段提交非常有名,其原因主要有两点:
一个是历史很悠久;
二是其定义是很模糊的,它首先不是一个协议,更不是一个规范,而仅仅是作为一个概念存在,故从传统的关系统数据库一致的最新的 DistributedSQL 中,我们都可以看到它的身影。

两阶段提交包含哪些角色?

两阶段提交包含协调器参与者两个角色。
在第一个阶段,协调器将需要提交的数据发送给参与者,同时询问参与者是否能够提交该数据,而后参与者返回投票结果。
在第二阶段,协调器根据参与者的投票结果,决定是提交还是取消这次事务,而后将结果发送给每个参与者,参与者根据结果来提交本地的事务。

协调器角色具体如何实现的?

可以看到两阶段提交的核心是协调器

它一般被实现为一个领导节点。我们可以使用多种方案来选举领导节点,并根据故障检测机制来探测领导节点的健康状态,从而确定是否要重新选择一个领导节点作为协调器。

另外一种常见的实现是由事务发起者来充当协调器,这样做的好处是协调工作被分散到多个节点上,从而降低了分布式事务的负载。

两阶段提交的过程是怎样的?

整个事务被分解为两个过程。

准备阶段

协调器向所有参与节点发送 Propose 消息,该消息中包含了该事务的全部信息。而后所有参与节点收到该信

两阶段提交与三阶段提交相关推荐

  1. 分布式两阶段提交和三阶段提交

    随着大型网站的各种高并发访问.海量数据处理等场景越来越多,如何实现网站的高可用.易伸缩.可扩展.安全等目标就显得越来越重要. 为了解决这样一系列问题,大型网站的架构也在不断发展.提高大型网站的高可用架 ...

  2. 分布式事务:两阶段提交与三阶段提交

    两阶段提交与三阶段提交 分布式事务 二阶段提交 请求阶段 提交阶段 举例 故障分析 柜员侧出现故障或拒绝Proposal 第一阶段经理侧出现故障 第二阶段经理侧出现故障 二阶段提交存在的问题 三阶段提 ...

  3. 两阶段提交和三阶段提交

    分布式提交的问题 在分布式系统中,为了保证数据的高可用,通常会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上. 在数据有多份副本的情况下,如果网络.服务器或者软件出现故障,会 ...

  4. 浅谈两阶段提交和三阶段提交

    本文主要分为三个部分 第一部分阐述两阶段提交的原理和优缺点. 第二部分阐述三阶段提交的原理和优缺点. 第三部分阐述如何解决业务中最终一致性的问题. 一.两阶段提交 两阶段提交方法是用于分布式事务中用来 ...

  5. 二阶段提交,三阶段提交,Paxos

    本文转载自:http://blog.csdn.net/u010191243/article/details/52081891 http://blog.chinaunix.net/uid-1672327 ...

  6. CAP原理,分布式一致性算法,两阶段提交,三阶段提交,Paxos,Raft,zookeeper的选主过程,zab协议,顺序一致性,数据写入流程,节点状态,节点的角色

    我们知道,一般在分布式应用都有CAP准则: C Consistency, 一致性,分布式中的各个节点数据保持一致 A availability 可用性,任何时刻,分布式集群总是能够提供服务 P par ...

  7. 分布式架构--两阶段提交和三阶段提交

    在分布式系统中,著有CAP理论,该理论由加州大学伯克利分校的Eric Brewer教授提出,该理论阐述了在一个分布式系统中不可能同时满足一致性(Consistency).可用性(Availabilit ...

  8. mysql三阶段提交_二阶段提交和三阶段提交

    一.2PC 2PC即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase).提交阶段(commit phase),2是指两个阶段,P是指准备阶段,C是指提交阶段 整个事务 ...

  9. 关于分布式事务、2pc两阶段提交协议、3pc三阶提交协议

    本文转载自:https://mp.weixin.qq.com/s/87-znh7Q-SvQfF9u8O3Trg 随着大型网站的各种高并发访问.海量数据处理等场景越来越多,如何实现网站的高可用.易伸缩. ...

最新文章

  1. 记事本写python怎么运行-Python开发简单记事本
  2. 进程间通信的5种方式
  3. 22 款设计和可视化神经网络的工具
  4. 基于BISS0001构成的热释电红外延时照明控制器电路图
  5. Cenos 7修改时区的方法
  6. 红旗linux 装xp,XP下硬盘安装红旗LINUX
  7. init 0-6 这几个启动级别都代表什么意思
  8. [转]解决xampp无法启动apache的问题
  9. Java快速排序算法
  10. 酷q机器人php源码,酷Q机器人完整的一套源代码,智能化管理群组
  11. Navision的ERP系统 - 微软Dynamics NAV的ERP软件评论
  12. 海思HI3536 H265解码处理器简介
  13. Python 局域网扫描存活主机开放端口
  14. 信号与系统之(二)傅里叶级数和傅里叶变换
  15. 推荐一款云服务器免费试用,可以延期再使用
  16. 微信中的表情符号代码对照表
  17. 金蝶KIS软件操作小技巧
  18. python中迭代_python中的迭代什么意思
  19. pytorch Module里的children()与modules()的区别
  20. api 3.0 个性化地图缩放时出现白色的底图,然而 api GL缩放时显示正常,调用api 3.0 接口时,如何避免地图缩放时出现白色底图

热门文章

  1. VALSE学习(十五):网络搜索结构-NAS
  2. 华硕主板开机:loading asus express gate解决办法
  3. 命令行 移动整个文件夹 -baijiahao_Windows高手的高效办公利器——Windows命令行简介...
  4. java 整数加减乘除_java实现超大整数加减乘除四则运算
  5. 安装ros-melodic遇到的各种问题及解决方法
  6. 小米笔记本bios版本大全_初级用户应该学习的BIOS知识
  7. 通用 字符串工具类
  8. python能爬取什么_5行代码就能写个爬虫,python真是太方便了!
  9. 循环char 指针_c 学习笔记 指针
  10. mysql中如何创建数据库_Mysql 中如何创建数据库和数据表