没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论















格式:pdf 资源大小:1.9MB 页数:71





格式:txt 资源大小:49.0B 页数:1



2018/12/18 还不理解“分布式事务”?这篇给你讲清楚! - 51CTO.COM
http://developer.51cto.com/art/201812/588511.htm 1/25
51CTO首页 | | | 地图 | 登录 注册 | 收藏本站
开发频道
首页 Web 架构&设计 语言&工具 大数据
输入您要搜索的内容
作者:陈彩华 来源:51CTO技术栈 | 2018-12-11 09:09
收藏
分享
还不理解“分布式事务”?这篇给你讲清楚!
这篇文章将介绍什么是分布式事务,分布式事务解决什么问题,对分布式事务实现的难点,解决思路,不
同场景下方案的选择,通过图解的方式进行梳理、总结和比较。
【51CTO.com原创稿件】这篇文章将介绍什么是分布式事务,分布式事务解决什么问题,对
分布式事务实现的难点,解决思路,不同场景下方案的选择,通过图解的方式进行梳理、总
结和比较。
相信耐心看完这篇文章,谈到分布式事务,不再只是有“2PC”、“3PC”、“MQ的消息事
务”、“最终一致性”、“TCC”等这些知识碎片,而是能够将知识连成一片,形成知识体
系。
什么是事务
介绍分布式事务之前,先介绍什么是事务。
事务的具体定义
事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的
所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都
将导致整个事务的回滚。
简单地说,事务提供一种“ 要么什么都不做,要么做全套(All or Nothing)”机制。
编辑推荐
头条
49页PPT干货:微服务架构起源、简
介及设计
关注
微软发布 Visual Studio Code 1.30
带来大量新功能与改进
头条
助你掌控微服务架构的20个Go语言
项目
热点
微服务架构有毒,何时不使用微服
务?
关注
11月份GitHub上最热门的Python项
目
读完这篇,你一定能真正理解Redis持久化
韦世东 Redis 持久化
强烈建议|转行Python最好看一下这篇文章
Leoxin 转行 Python
太嚣张了!他竟用Python绕过了“验证码”
沈仲强
Python 验证码
漫画:HTTP协议极简教程,傻瓜都能看懂!
佚名
HTTP 协议
传统企业请注意:不够痛就别微服务,有坑
刘超
微服务 应用
拜托!面试不要再问我Spring Cloud底层原理
中华石杉
面试 Spring Cloud
顶尖架构师也该掌握的微服务架构设计指南
陈峻编译
微服务 架构
Java程序员从阿里面试回来,这些面试题你们...
徐刘根
Java 程序员
技术频道 51CTO旗下网站 移动端
热门推荐

2018/12/18 还不理解“分布式事务”?这篇给你讲清楚! - 51CTO.COM
http://developer.51cto.com/art/201812/588511.htm 2/25
数据库事务的 ACID 属性
事务是基于数据进行操作,需要保证事务的数据通常存储在数据库中,所以介绍到事务,就
不得不介绍数据库事务的 ACID 特性。
ACID 指数据库事务正确执行的四个基本特性的缩写,包含:
原子性(Atomicity)
整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。
事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来
没有执行过一样。
例如:银行转账,从 A 账户转 100 元至 B 账户,分为两个步骤:
从 A 账户取 100 元。
存入 100 元至 B 账户。
这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少
了 100 元。
一致性(Consistency)
在事务开始之前和事务结束以后,数据库数据的一致性约束没有被破坏。
例如:现有完整性约束 A+B=100,如果一个事务改变了 A,那么必须得改变 B,使得事务
结束后依然满足 A+B=100,否则事务失败。
隔离性(Isolation)
数据库允许多个并发事务同时对数据进行读写和修改的能力,如果一个事务要访问的数据正
在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影
响。
隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
例如:现有有个交易是从 A 账户转 100 元至 B 账户,在这个交易事务还未完成的情况下,
如果此时 B 查询自己的账户,是看不到新增加的 100 元的。
持久性(Durability)
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
24H热文 一周话题 本月最赞
百亿大表任意维度查询,如何做到毫秒级返…
仅需一篇,妥妥吃透“持续集成”
传统企业请注意:不够痛就别微服务,有坑
从明年1月开始,Oracle要对JDK8就要收费…
起薪2万的爬虫工程师,Python需要学到什…
坐在马桶上看算法:快速排序
Go语言的9大优势和3大缺点
Python开源项目最新月榜TOP 10
视频课程
+更多
讲师:新任帮主
10386人学习过
2018网络工程师入门CCNA 0
基础学网络1次pass
讲师:实践哥
6820人学习过
MYSQL主从复制偏运维全实战
视频教程
讲师:王子宁
29579人学习过
Excel企业实战与解决方案开发
教程3
申请入营 互联网班 金融班
限时69元加入 最新活动 全部课程
CTO训练营-新CTO进化论,申请入营
CTO俱乐部线上会员,限时69元抢购
线上社群,仅限技术管理者免费申请
+ 更多
CTO品牌
最新专题
+更多
如何成为一个值得追随的技术
管理者
Yii框架深度剖析
Yii框架
直播平台在实践过程中遇到的
挑战
直播平台
CTO训练营
CTO俱乐部

2018/12/18 还不理解“分布式事务”?这篇给你讲清楚! - 51CTO.COM
http://developer.51cto.com/art/201812/588511.htm 3/25
简单而言,ACID 是从不同维度描述事务的特性:
原子性:事务操作的整体性。
一致性:事务操作下数据的正确性。
隔离性:事务并发操作下数据的正确性。
持久性:事务对数据修改的可靠性。
一个支持事务(Transaction)的数据库,需要具有这 4 种特性,否则在事务过程当中无法保证
数据的正确性,处理结果极可能达不到请求方的要求。
什么时候使用数据库事务
在介绍完事务基本概念之后,什么时候该使用数据库事务?
简单而言,就是业务上有一组数据操作,需要如果其中有任何一个操作执行失败,整组操作
全部不执行并恢复到未执行状态,要么全部成功,要么全部失败。
在使用数据库事务时需要注意,尽可能短的保持事务,修改多个不同表的数据的冗长事务会
严重妨碍系统中的所有其他用户,这很有可能导致一些性能问题。
二、什么是分布式事务
介绍完事务相关基本概念之后,下面介绍分布式事务。
分布式产生背景与概念
随着互联网快速发展,微服务,SOA 等服务架构模式正在被大规模的使用,现在分布式系统
一般由多个独立的子系统组成,多个子系统通过网络通信互相协作配合完成各个功能。
有很多用例会跨多个子系统才能完成,比较典型的是电子商务网站的下单支付流程,至少会
涉及交易系统和支付系统。
而且这个过程中会涉及到事务的概念,即保证交易系统和支付系统的数据一致性,此处我们
称这种跨系统的事务为分布式事务。
微服务实战中的那些“坑”
微服务/实战
精彩评论
独孤九剑001评论了:太可怕了!第一
批AI已经开始诈骗
牛批,牛批
guoshuyu8602评论了:狂裁34万人
背后:人到中年,崩溃无声!
贩卖焦虑,才能火爆培训市场。
fxzjx评论了:我们为何需要安全传输层
协议(TLS)
这篇文章写的不错,也举了不少实例,
看了这篇文章后,我又继续听了这个课
程,解决了一些以前不明白的问题,所
以把课程推荐给有这方面迷惑的小伙
伴,希望能帮到大家! 一个系统、全
面讲解传统加密通信SSL/TLS的课程 :
http://edu.51cto.com/sd/89f15
wx59c373c4a567c评论了:全面屏已
经不够瞧 折叠手机是明年潮流
厉害
精选博文 论坛热帖 下载排行
千万级规模【高性能、高并发】互联网
Jenkins 安装详细步骤
Centos7.5 Prometheus2.5配置和基于C
借助Gradle Plugin解决模块化开发中
JavaSE基础知识总结
读 书
+更多
网管第一课——计算机网络原
理
本书是《网管第一课》系列图书中
的第一本,是专门针对高校和培训
机构编写的,其主要特点是内容细
而精、针对性强。书中内容全是经
过精心挑选...
订阅51CTO邮刊
点击这里查看样刊

2018/12/18 还不理解“分布式事务”?这篇给你讲清楚! - 51CTO.COM
http://developer.51cto.com/art/201812/588511.htm 4/25
具体一点而言,分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管
理器分别位于不同的分布式系统的不同节点之上。
举个互联网常用的交易业务为例:
上图中包含了库存和订单两个独立的微服务,每个微服务维护了自己的数据库。
在交易系统的业务逻辑中,一个商品在下单之前需要先调用库存服务,进行扣除库存,再调
用订单服务,创建订单记录。
可以看到,如果多个数据库之间的数据更新没有保证事务,将会导致出现子系统数据不一
致,业务出现问题。
分布式事务的难点
事务的原子性
剩余24页未读,继续阅读
资源评论


寒塘月不冷
- 粉丝: 0
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 处于实例分割与目标检测二者之间的定边长数任意多边形目标检测技术
- Flet框架结合Pillow实现图片倒映效果自定义模板
- 基于阿里百炼大模型与自然语言处理技术的本地化智能舆情分析系统-实现新闻检索-情绪分析-结构化输出与邮件推送功能-支持多轮对话交互与数据可视化展示-适用于企业舆情监控与个人资讯管理-.zip
- 基于目标检测和姿态识别的实时防摔倒检测系统
- 基于 YOLO 目标检测技术参与津南算法大赛 利用 YOLO 目标检测方法角逐津南算法竞赛 采用 YOLO 目标检测模型征战津南算法大赛 运用 YOLO 目标检测框架参与津南算法竞赛 依托 YOLO
- 8086微机原理与接口技术试题库(含答案).doc
- 计算机网络与通信教学大纲.doc
- 楼宇设备自动化系统结构.doc
- 城市大数据平台建设方案.pptx
- 跨平台数据驱动二维图表编辑器-矢量图形编辑数据绑定多文档共享图层管理PDF位图DXF导出C脚本自动化-用于创建和编辑数据驱动的二维图表支持多种文件格式导出和自动化处理-基于Ava.zip
- 利用智能手机APP完成计算机程序设计课程的做与学.docx
- 有关新时期信息技术在工程项目管理中的应用的探讨.docx
- 基于EDA和单片机技术逻辑分析仪设计课件.doc
- 区块链技术在智慧图书馆的应用场景分析.docx
- 信息系统网络安全问题研究.docx
- 基于物联网的智能叉车系统关键技术探讨.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
