本地事务ACID大家应该都知道了,统一提交,失败回滚,严格保证了同一事务内数据的一致性!而分布式事务不能实现这种ACID,它只能实现CAP原则里的某两个,CAP也是分布式事务的一个广泛被应用的原型,CAP(Consistency, Availability, Partition Tolerance), 阐述了一个分布式系统的三个主要方面, 只能同时择其二进行实现. 常见的有CP系统, AP系统。

应用于CP和AP的原则在业界出现了一些框架:

CP系统就有二阶段提交(强一致性)

AP系统就有TCC(补偿型事务)

其中最近接触的aspnetcore.cap就是一个满足最终一致性的异步消息方案实现的,其中它为mysql,sqlserver都提供了解决方案,消息队列可以有kafka和rabbitmq两种选择,根据自己的需要去安装,源代码在github上有开源,nuget上也有对应的包包!

对消息确保型-最终一致性的分布式事务的理解:

  1. 服务A提交数据
  2. 向消息中心发送消息
  3. 消息中心向订阅方推送消息
  4. 订阅方处理自己的业务逻辑
  5. 失败去反复去重试,直到成功,而不是向强一致性那样,把A回滚的

同时也感谢cap作者杨晓东的细心解答!(http://www.cnblogs.com/savorboard)

Github开源地址:https://github.com/dotnetcore/CAP

感谢!

微服务~分布式事务里的最终一致性相关推荐

  1. 我说分布式事务之消息最终一致性事务(二):RocketMQ的实现

    来源:https://0x9.me/A76YN 号外:最近整理了一下以前编写的一系列Spring Boot内容,整了个<Spring Boot基础教程>的PDF,关注我,回复:001,快来 ...

  2. 一行代码就能解决微服务分布式事务问题,你知道GTS怎么做到的吗?

    2019独角兽企业重金招聘Python工程师标准>>> GTS直播火热报名中,直播直通车 一.GTS (Global Transaction Service)是啥? GTS(全局事务 ...

  3. 分布式事务?No, 最终一致性

    分布式一致性 一.写在前面 现今互联网界,分布式系统和微服务架构盛行. 一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的. 在互联网金融等一致性要求较高的场景下,多个独立操作之间的一致 ...

  4. .Net Core with 微服务 - 分布式事务 - 2PC、3PC

    最近比较忙,好久没更新了.这次我们来聊一聊分布式事务. 在微服务体系下,我们的应用被分割成多个服务,每个服务都配置一个数据库.如果我们的服务划分的不够完美,那么为了完成业务会出现非常多的跨库事务.即使 ...

  5. 微服务--分布式事务的实现方法及替代方案

    这两天正在研究微服务架构中分布式事务的处理方案, 做一个小小的总结, 作为备忘. 如有错误, 欢迎指正! 概念澄清 事务补偿机制: 在事务链中的任何一个正向操作, 都必须存在一个完全符合回滚规则的可逆 ...

  6. seata 如何开启tcc事物_微服务分布式事务4种解决方案实战

    分布式事务 分布式事务是指事务的参与者,支持事务的服务器,资源服务器分别位于分布式系统的不同节点之上,通常一个分布式 事物中会涉及到对多个数据源或业务系统的操作. 典型的分布式事务场景:跨银行转操作就 ...

  7. 同事操作两个数据源保持事务一致_微服务分布式事务4种解决方案实战

    分布式事务 分布式事务是指事务的参与者,支持事务的服务器,资源服务器分别位于分布式系统的不同节点之上,通常一个分布式 事物中会涉及到对多个数据源或业务系统的操作. 典型的分布式事务场景:跨银行转操作就 ...

  8. 微服务 分布式事务解决方案

    一. 前言 阿里2017云栖大会<破解世界性技术难题!GTS让分布式事务简单高效>中,阿里声称提出了一种破解世界性难题之分布式事务的终极解决方案,无论是可靠性.还是处理速率都领先于市面上所 ...

  9. 我说分布式事务之消息最终一致性事务(一):原理及实现

    来源:https://0x9.me/YgaUc 在之前的文章中,我们已经学习总结了分布式事务的两种解决方案. 我说分布式事务之TCC 我说分布式事务之最大努力通知型事务 本文我们将学习到另一种常见的柔 ...

最新文章

  1. C++知识点32——使用C++标准库(关联容器set和multiset的初始化,赋值,查找,添加,删除与迭代器失效)
  2. LTE各场景下的密钥处理
  3. paper 17 : 机器学习算法思想简单梳理
  4. BugTracker.NET安装指南
  5. Leetcode每日一题:112.path-sum(路经总和)
  6. 10.java之父被B站学习者下载达7000万次的Java视频教程你还没有看过知乎
  7. solr查询如何支持多个fq 多条件查询
  8. android h5图片预览,移动端h5实现拍照上传图片并预览
  9. ssdt函数索引号_shadow ssdt 服务表函数索引
  10. SpringBoot的幕后推手,java互联网架构师系统vip课程
  11. 青少年编程 中国电子学会scratch等级考试二级历年真题解析【持续更新 已更新至2023年3月】
  12. “阅读推广 + ”模式下高校图书馆空间再造藏书体系建设
  13. 计算机网络【IP协议与以太网】
  14. MPC(模型预测控制)_附matlab例程
  15. 01_行销(Marketing)里的有用的KPI-转换率 (Conversion Rate)
  16. 企业应用层面知识管理咨询方法
  17. luci与页面的数据交互
  18. Android 10.0 行为变更(一)针对所有 API 级别的应用
  19. 八年级计算机考操作试题,初二信息技术考试试题及答案
  20. 常用办公软件(Word、Excel、PowerPoint、Markdown、Xmind)技巧,能让你从根本上抓住改文档的“需求”!

热门文章

  1. linux shell 数组遍历方式(非原创)
  2. 利用存储过程得到某一指定的表与其它的表之间的外键关系SQL Server2000
  3. python安装某些库失败的问题解决方案
  4. Linux 内核里的“智能指针”【转】
  5. js脚本 处理js注入
  6. [EULAR文摘] 肢端MRI能否在未分化关节患者中甄别出RA患者
  7. 继续不务正业,今天来弄弄R
  8. [Linux学习]Shell脚本(1)--函数,输入,if判断(持续更新)+删除空行 +保存当前路径...
  9. 硬盘格式化与快速格式化的区别
  10. iPhone全球技术巡讲北京站,WWDRChina 2009 Beijing