多项目时,事务该怎么管理

发布于 2021-11-29 17:29:53 字数 174 浏览 919 评论 19

现有项目分为了三个独立的工程:分别是接口、后台管理、支付相关。

每一个都是一个web工程,单独启动,数据库使用的是同一个。

定时任务是放在后台管理的工程内,但是定时任务和接口工程可能会同时操作一条数据,出现问题,spring的事务只能在一个工程内解决,这种多项目的情况该如何解决事务问题呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(19

居里长安 2021-12-03 15:18:01

分布式不光是指数据库的分布式吧,程序上也有“分布式”

夜无邪 2021-12-03 15:18:00

回复
无论是分布式数据库还是分布式应用,只会把问题复杂化,数据库加锁就可以解决。

背叛残局 2021-12-03 15:17:57

回复
@BoXuan : 请问你如何用分布式解决上面的问题呢?

月亮是我掰弯的 2021-12-03 15:17:57

目前常见的分布式包括分布式存储、分布式计算,分布式存储跟数据库的多少或者磁盘分件存储有关系,而它这种不存在分布式存储,但将业务分到三个项目上,整的来说是三个分开的业务流程最终汇整到一个大的业务上,应该是属于分布式计算的范畴。

瀞厅☆埖开 2021-12-03 15:17:55

我就郁闷了,同一个数据库,怎么就扯到分布式那去了。

挽清梦 2021-12-03 15:17:52

感谢回答。 您介绍了分布式,但是我提出的问题应该和分布式关系不大吧

千纸鹤带着心事 2021-12-03 15:17:27

分布式是把项目整体分割成独立的一部分,可以简单理解为串联电路,其中一个损坏,无特殊处理方案的情况下整个分布式链路报废。集群是把项目整体分布在可独立运行整个业务的服务器上,简单理解为并联电路,其中一个损坏,不影响其它服务。负载均衡是调度协调集群中的服务器个体承载量的。

大型网络服务,会把项目做集群部署,而项目又做分布式多分结构(比如很多项目都有中间件),每个分布式节点又可以做集群,理论上可以拓展得非常广。

心欲静而疯不止 2021-12-03 15:16:12

嗯,说的是,我理解的分布式有问题,这种多项目的结构也是分布式,那怎么解决呢

陌若浮生 2021-12-03 15:14:49

回复
网上搜索“分布式事务”,有好几种方案的,也有用redis做分布式事务锁的。

夜血缘 2021-12-03 15:09:57

回复
@BoXuan : 分布式事务锁用什么做的?什么框架? (

白龙吟 2021-12-03 15:07:59

回复
@BoXuan : 嗯,但过于麻烦了,我觉得我这种情况,数据库加锁应该就可以解决了

彩扇题诗 2021-12-03 15:05:19

这就是分布式,一楼的答案正解。

葬花如无物 2021-12-03 14:52:12

分布式事务锁用什么做的?什么框架?

羁拥 2021-12-03 14:48:12

分布式事务锁

女中豪杰 2021-12-03 14:01:24

那您说,我这种问题,该怎么去规避呢,我能想到的只有锁了,直接加行锁(乐观/悲观)

孤檠 2021-12-02 13:53:57

回复
打个比方,客户支付完成下单这一步,需求是客户要么支付成功,要么支付失败,不能没有支付却显示支付成功,或者支付成功却显示支付失败。假设有个支付订单表,客户id:1有一条未支付记录,现在客户开始支付,

尐偏执 2021-12-01 22:27:15

回复
方案一,订单表有一列版本号,客户下单时首先拉取账单记录,然后支付时拿着账单id和版本号去做update修改状态(update……where orderid=?and version=?),后台获取支付结果,返回0支付失败,前台通知客户支付失败,返回1,支付成功,前台通知支付成功,若发生失败,中间涉及三方的话,金额原路返回

清风夜微凉 2021-11-30 03:38:50

回复
方案二,客户支付直接update数据库,update成功,则直接放回,若失败,将此订单记录到异常订单表,有个定时,定时读取异常订单表,校对信息,若无误修改订单状态,若错误,重置订单,涉及金额,原路返回,若无法判断,转存到人工复审订单表

彩扇题诗 2021-11-29 19:45:37

使用锁会严重影响系统性能,尤其分布式锁,目前技术不成熟,坑比较多,一般都是通过业务去规避事物的问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文