想问下,跨不同数据库,oracle,mysql,pg 的事务操作有什么解决方案吗?不用同步,只要回滚。
背景都是单库。
同一个事务中,以下任一步骤异常则全部回滚。
例如:步骤 3 异常,1、2、3 操作回滚
LZ 是 Javaer。。。工程是 springboot 的。。。
1
lolizeppelin 2019-09-16 13:58:35 +08:00 via Android
工作流呗还能咋办
|
2
pangleon 2019-09-16 14:04:54 +08:00
你非要实时不就是分布式事务么?你怎么理解你自己说的 “不用同步”的?不是只有数据同步叫同步,你这是状态同步一样也是同步。
要么上分布式事务中间件,目前有不少方案了,TCC,SAGA,消息。对现有系统侵入性最小的是消息模式 |
3
monsterxx03 2019-09-16 14:08:29 +08:00
|
4
LeeSeoung 2019-09-16 14:29:51 +08:00
关键词 分布式事务 有很多可以用的框架,但都不是很好用。。
|
5
dog82 2019-09-16 15:04:29 +08:00
分布式事务,以前用过 jboss 系列的 narayana,感觉云里雾里的。
后来听说 spring 可以集成 atomikos |
6
xuanbg 2019-09-16 15:59:46 +08:00
最省事的方案就是统统换成 oracle,消灭提出问题的人……不对,是数据库,也能解决问题。也许这个办法还最省钱也说不定呢。
除此之外,就是上分布式事务了,估计楼上说的那些都不好使,最后还得自己造轮子。然后发现这个轮子不好造,一开始以为最多是造一辆马车,结果发现是艘宇宙飞船。。。 |
7
ziding 2019-09-17 09:25:39 +08:00
最简单的 2PC 提交,影响性能。复杂的 TCC,SAGA,消息
|
8
boyhailong 2019-09-17 11:37:31 +08:00
实际中有这么复杂的需求?
|
9
XiLemon 2019-09-17 12:11:03 +08:00 via iPhone
老哥,怎么感觉在某个群里见过这个问题呢
|
11
Breadykid OP @boyhailong 公司是要造这个轮子。。。
|