支持Saga、Tcc、Xa混用,支持gRPC,HTTP混用的分布式事务模式

2022-07-19
阅读 5 分钟
2.4k
Workflow 模式是github.com/dtm-labs/dtm首创推出的模式,在这个模式下,可以混合使用XA、SAGA、TCC,也可以混合使用HTTP、gRPC,用户可以对分布式事务里面的绝大部分内容进行定制,具备极大的灵活性,下面我们以转账场景,讲述如何在Workflow下进行实现。

如何优雅地实现多数据库的发件箱模式

2022-07-04
阅读 3 分钟
1.8k
一个微服务可能需要执行“存数据库”和“发送事件”两个步骤。例如发布一篇文章后,需要更新作者的发文统计信息。业务上要求两个操作同时失败,或者同时成功,而不能出现一个成功一个失败。假如最终文章发布了,更新发文统计失败了,就会导致数据不一致。

DTM Java SDK 2.1.4发布,支持springcloud

2022-05-30
阅读 7 分钟
2.9k
[链接] 是一款变革性的分布式事务框架,提供了傻瓜式的使用方式,极大的降低了分布式事务的使用门槛,改变了“能不用分布式事务就不用”的行业现状,优雅的解决了服务间的数据一致性问题。

首个彻底保证缓存与数据库一致性的开源方案

2022-05-09
阅读 7 分钟
3.1k
大量的实际的项目中,都会引入 Redis 缓存来缓解数据库的查询压力,此时由于一个数据在 Redis 和数据库两处进行了存储,就会有数据一致性的问题。目前业界尚未见到成熟的能够确保最终一致性的方案,特别是当如下场景发生时,会直接导致缓存数据与数据库数据不一致,可能给应用带来较大问题。

跨Mysql、Redis、Mongo的分布式事务

2022-04-24
阅读 4 分钟
3.6k
Mysql、Redis、Mongo都是非常流行的存储,并且各自有自己的优势。在实际的应用中,常常会同时使用多种存储,也会遇见在多种存储中保证数据一致性的需求,例如保证数据库中的库存和Redis中的库存一致等。

深度剖析分布式事务之 AT 与 XA 对比

2022-04-11
阅读 3 分钟
2.8k
AT 从原理上面看,与 XA 的设计有很多相近之处。XA 是数据库层面实现的二阶段提交, AT 则是应用/驱动层实现的二阶段提交。建议您了解了XA相关的知识后,来阅读这篇文章,这样能够更快更好的掌握 AT 的原理与设计。

kratos分布式事务实践

2022-03-30
阅读 3 分钟
5.6k
当我们需要跨服务保证数据一致性时,原先的数据库事务力不从心,无法将跨库、跨服务的多个操作放在一个事务中。这样的应用场景非常多,我们可以列举出很多:

消息最终一致性的架构革命

2022-01-12
阅读 5 分钟
2.9k
跨服务更新数据是应用开发常见的任务,如果一些关键数据对一致性的要求较高,而业务上也不需要支持回滚的话,那么通常就会采用本地消息表的方式来保证最终一致。许多公司在处理跨服务更新数据一致性问题时,都会先引入本地消息表,后续随着业务场景复杂化,再引入更多的事务模式

go-zero分布式事务实践

2021-12-20
阅读 3 分钟
9.7k
当我们需要跨服务保证数据一致性时,原先的数据库事务力不从心,无法将跨库、跨服务的多个操作放在一个事务中。这样的应用场景非常多,我们可以列举出很多:

深入剖析分布式事务一致性

2021-12-13
阅读 4 分钟
7k
分布式事务是用来解决跨数据库、跨服务更新数据一致性问题的。那么这里的一致性指的是什么,什么是强一致性,什么是弱一致性,与CAP理论中的一致性概念是一样的吗?本文将为您深入解答相关的问题。

分布式事务的这些常见用法都有坑,来看看正确姿势

2021-11-29
阅读 3 分钟
7.7k
随着微服务架构的流行,随之而来就必然遇到跨服务的分布式事务这个难题。分布式事务之所以难,主要是因为分布式系统中的各个节点都可能发生各种非预期的情况。本文先介绍分布式系统中的异常问题,然后介绍这些问题带给分布式事务的挑战,接下来指出现有各种常见用法的问题,最后给出正确的方案。

分布式事务框架dtm1.5.4发布,支持更友好的gRPC类型

2021-11-15
阅读 2 分钟
3.2k
更新日志更加友好的gRPC类型支持,输入输出支持任何类型添加例子启动时等待mysql,避免因mysql启动慢而退出新功能示例旧的proto文件示例: {代码...} 使用时需要进行转化 {代码...} 新的proto文件示例 {代码...} 使用时,直接是强类型,完全与dtm定义的branchInfo等无关 {代码...} 在新版本情况下,业务的gRPC接口,完全...

分布式事务框架dtm1.4.1发布,支持高级SAGA

2021-11-01
阅读 2 分钟
3.2k
更新日志支持并发SAGA支持SAGA超时回滚支持自定义重试间隔新功能示例 {代码...} 上述代码中EnableConcurrent开启SAGA各分支的并发执行,缩短整个SAGA事务的总耗时上述代码中的注释:AddBranchOrder(1, []int{0}),则可以添加事务分支间的依赖关系。例如这行注释的依赖关系为下标为1的分支,依赖下标为0的分支,只有等0完...

分布式事务框架dtm1.3.1发布,添加postgres支持

2021-10-18
阅读 1 分钟
3.2k
DTM是首款golang开发的跨语言分布式事务管理器,优雅的解决了幂等、空补偿、悬挂等分布式事务难题。提供了简单易用、高性能、易水平扩展的分布式事务解决方案。

深度剖析分布式事务性能

2021-10-11
阅读 3 分钟
7.6k
随着微服务的大规模应用,跨微服务的分布式事务也越来越多,那么分布式事务的性能究竟怎么样?性能会下降多少?能否满足业务需求?这些指标关系到分布式事务能否顺利的引入到生产应用,是大家非常关心的问题。

用PHP轻松完成一个分布式事务TCC,保姆级教程

2021-09-22
阅读 4 分钟
4.2k
什么是TCC,TCC是Try、Confirm、Cancel三个词语的缩写,最早是由 Pat Helland 于 2007 年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出。

用Node轻松完成一个分布式事务TCC,保姆级教程

2021-08-30
阅读 3 分钟
2.7k
什么是TCC,TCC是Try、Confirm、Cancel三个词语的缩写,最早是由 Pat Helland 于 2007 年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出。

分布式事务管理器dtm0.10.0发布 支持grpc

2021-08-29
阅读 1 分钟
4.3k
DTM是首款golang的开源分布式事务管理器,优雅的解决了幂等、空补偿、悬挂等分布式事务难题。提供了简单易用、高性能、易水平扩展的分布式事务解决方案。

分布式事务管理器dtm0.9.1发布 新增python node支持,线上部署支持

2021-08-25
阅读 1 分钟
2.6k
更新日志添加环境变量支持、部署支持,文档添加部署支持dtmcli与gin、logrus完全解耦,并且支持拆分到单独的仓库添加事务等待结果模式添加默认DB_DRIVER为mysqlDTM是首款golang的开源分布式事务管理器,优雅的解决了幂等、空补偿、悬挂等分布式事务难题。提供了简单易用、高性能、易水平扩展的分布式事务解决方案。受邀...

如何选择最适合你的分布式事务方案

2021-08-06
阅读 3 分钟
9.7k
当我们采用服务/微服务架构,对业务进行分拆解耦后,原先在一个单体内,使用本地数据库保证ACID的数据修改,因为跨了多个服务,就不再适用了,就需要引入分布式事务来保证新的原子性。

分布式事务实战--一个完整的XA是什么样的?

2021-07-13
阅读 3 分钟
4.4k
这种把多条语句作为一个整体进行操作的功能,被称为数据库事务。数据库事务可以确保该事务范围内的所有操作都可以全部成功或者全部失败。如果事务失败,那么效果就和没有执行这些SQL一样,不会对数据库数据有任何改动。

用Go轻松完成一个TCC分布式事务,保姆级教程

2021-07-12
阅读 4 分钟
10.4k
什么是TCC,TCC是Try、Confirm、Cancel三个词语的缩写,最早是由 Pat Helland 于 2007 年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出。

分布式事务最经典的七种解决方案

2021-07-09
阅读 8 分钟
67.7k
随着业务的快速发展、业务复杂度越来越高,几乎每个公司的系统都会从单体走向分布式,特别是转向微服务架构。随之而来就必然遇到分布式事务这个难题。

用Go轻松完成一个SAGA分布式事务,保姆级教程

2021-07-05
阅读 4 分钟
7.9k
银行跨行转账业务是一个典型分布式事务场景,假设A需要跨行转账给B,那么就涉及两个银行的数据,无法通过一个数据库的本地事务保证转账的ACID,只能够通过分布式事务来解决。