一般来说,分布式事务的实现主要有以下 5 种方案: XA 方案(两阶段提交 事务) TCC 方案 本地消息表(异步确保一致性) 可靠消息最终一致性方案(MQ事务消息RocketMQ) 最大努力通知方案 一致性从强到弱/性能开销从多到少:三阶段->二阶段->TCC->saga 使用场景: 1、资金账户 ...
分类:
其他好文 时间:
2020-02-19 00:47:32
阅读次数:
73
一、两阶段提交 2PC 1、数据库层面的两阶段提交(XA trainsaction) 两阶段提交是目前经常使用的一种解决分布式事物的强一致性的一种方案,它是由事物协调器和若干个事物执行者(数据库本身)组成。 所谓两阶段提交就是将每一个事物拆分成 任务+提交,将任务的执行和任务提交分成两步。当客户端发 ...
分类:
其他好文 时间:
2020-02-05 18:51:42
阅读次数:
68
MySQL 数据库中的两阶段提交,不知道您知道不?这篇文章就简单的聊一聊 MySQL 数据库中的两阶段提交, 两阶段提交发生在数据变更期间(更新、删除、新增等),两阶段提交过程中涉及到了 MySQL 数据库中的两个日志系统:redo 日志和 binlog 文件 。 redo 日志前面已经介绍过了,就 ...
分类:
数据库 时间:
2020-02-03 14:01:27
阅读次数:
88
本文始发于个人公众号:TechFlow 今天的文章咱们聊的是分布式原理当中的原子性,也称为分布式事务。不知道会不会有人觉得奇怪,分布式系统CAP原则当中并没有原子性,这个原子性是从哪里冒出来的? 其实并不奇怪,之前我们在介绍各种一致性原则的时候,虽然没有明确提出来,但是原子性的相关内容已经隐藏在其中 ...
分类:
其他好文 时间:
2020-02-01 10:18:21
阅读次数:
61
分布式事务解决方案: 一.基于XA协议的两阶段提交; 二.消息事务+最终一致性 所谓的消息事务就是基于消息中间件的两阶段提交,本质上是对消息中间件的一种特殊利用,它是将本地事务和发消息放在了一个分布式事务里,保证要么本地操作成功成功并且对外发消息成功,要么两者都失败。 开源的RocketMQ就支持这 ...
分类:
其他好文 时间:
2020-01-12 09:37:29
阅读次数:
64
一、2PC 2PC即两阶段提交协议,是将整个事务流程分为两个阶段, 准备阶段 (Prepare phase)、 提交阶段 (commit phase),2是指两个阶段,P是指准备阶段,C是指提交阶段 整个事务过程由事务管理器和参与者组成,事务管理器负责 决策整个分布式事务的提交和回滚,事务参与者负责 ...
分类:
其他好文 时间:
2019-12-31 01:36:53
阅读次数:
124
所有文章 https://www.cnblogs.com/lay2017/p/12078232.html 正文 在讲1pc事务提交协议的时候我们说过,1pc适合单个数据源,如果在分布式场景下需要面对多个数据源的时候它就心有余而力不足了。 两阶段提交协议 1pc的根本问题在于无法协调多个数据源,为此就 ...
分类:
其他好文 时间:
2019-12-27 00:16:22
阅读次数:
56
分布式事务之解决方案(XA和2PC) https://zhuanlan.zhihu.com/p/93459200 3. 分布式事务解决方案之2PC(两阶段提交) 针对不同的分布式场景业界常见的解决方案有2PC、TCC、可靠消息最终一致性、最大努力通知这几种。 3.1. 什么是2PC 2PC即两阶段提 ...
分类:
其他好文 时间:
2019-12-22 18:38:49
阅读次数:
142
在生产中需要将一些数据发到kafka,而且需要做到EXACTLY_ONCE,kafka使用的版本为1.1.0,flink的版本为1.8.0,但是会很经常因为提交事务引起错误,甚至导致任务重启。 这些错误基本涉及到两阶段提交、事务、checkpoint。
查看kafka documentation和... ...
分类:
其他好文 时间:
2019-12-16 13:10:45
阅读次数:
522
分布式事务了解吗?如果解决分布式事务问题的? 面试官心里: 只要聊到你做了分布式系统,必问分布式事务,起码得知道有哪些方案,一般怎么来做,每个方案的优缺点是什么。 为什么要有分布式事务? 分布式事务实现的几种方案: 1. 两阶段提交方案/XA方案 这种分布式事务方案,比较适合单块应用里。跨多个库的分 ...
分类:
编程语言 时间:
2019-12-15 14:18:20
阅读次数:
73