24 条回复  ·  288 次点击
laminux29 小成 2024-8-21 09:47:12
不懂分布式事务,写程序容易造成数据状态不一致。如果公司有的选,当然要选懂分布式事务的程序员。

举一个简单的场景,银行服务器的数据,分散在不同的物理机里。比如用户的借记卡数据在 IBM Server 上面,用户的信用卡数据在 X79 Server 上面,现在某用户通过借记卡,给自己的信用卡还款,思考一下,为什么各大银行的还款提醒,不是实时的,甚至有时候你晚上还款了,第二天银行还会给你发短信。通知你还款。

再举个更常见的场景:
Server1 保存用户订单信息,Server2 保存商品宝贝详情页。你想想为什么淘宝订单、京东订单、拼多多订单,很多年前的订单,已经看不到当时的商品详情。
ilvsxk 小成 2024-8-21 09:58:47
@laminux29 #11
银行账单延迟和看不到详情单纯就是为了降本省成本,和分布式事务有啥关系?
JackSlowFcck 小成 2024-8-21 10:10:22
分布式事务是指在分布式系统中,涉及多个数据库或服务节点的事务操作。在传统的单体应用中,事务通常由单个数据库管理,比较容易实现事务的一致性。但在分布式环境下,由于数据和操作分布在不同的节点上,事务的管理变得更加复杂。

分布式事务通常具有以下特点:
1. 多个数据源:涉及多个独立的数据库或数据存储节点。
2. 跨服务调用:可能跨越多个不同的服务,每个服务可能有自己的事务管理机制。
3. 数据一致性挑战:确保在多个节点上的数据操作要么全部成功,要么全部回滚,以保持数据的一致性。

常见的分布式事务场景包括:
1. 微服务架构:不同的微服务之间进行数据交互和业务操作时,可能需要保证事务的一致性。例如,在一个电商系统中,订单服务和库存服务分别在不同的微服务中,当创建订单时,需要同时减少库存,这就需要分布式事务来保证两个操作的一致性。
2. 系统集成:多个独立的系统进行对接和数据同步时,也可能需要处理分布式事务。比如,企业内部的不同业务系统之间进行数据交换,要确保数据的完整性和一致性。

实现分布式事务的方法有多种,常见的有两阶段提交( 2PC )、三阶段提交( 3PC )、补偿事务( TCC )、基于消息队列的最终一致性等。这些方法各有优缺点,需要根据具体的业务场景和需求进行选择。

在面试中,如果被问到分布式事务场景,可以更加具体地阐述一些实际的业务例子,比如电商订单与库存的管理、银行转账系统中不同账户之间的资金转移等,并且可以简要介绍一下实现分布式事务的方法和思路。这样可以让面试官更好地了解你的知识深度和解决实际问题的能力。
-----
不蟹 bro
MoYi123 小成 2024-8-21 10:12:16
真的有场景是不得不用分布式事务的吗?
我遇到过的情况都是对数据库的事务理解不行, 然后搞了一套恶心人的分布式事务上去.
xiaogang530 小成 2024-8-21 10:14:00
@laminux29 #13 数据状态一致性不是技术选型决定的么?
pangdundun996 初学 2024-8-21 10:17:51
@laminux29 这个例子不太合适,银行这个是因为信用卡核心系统基本都是双信息系统,要等夜间跑批清算才能入账,跟分布式事务没关系
dyllen 小成 2024-8-21 10:24:45
数据同步也没什么大问题呀。就是多个系统之间的原子操作,要么成功要么失败,用处就是保证跨系统的业务操作数据的强一致性,和本地数据库的事务一个目的。
silencil 小成 2024-8-21 10:35:47
八股文学习了一大堆,面试不到我学习的内容五分之一,工作内容涉及不到十分之一。
isno 小成 2024-8-21 11:22:16

分布式事务到是什么

https://www.thebyte.com.cn/distributed-transaction/transaction.html

我这里介绍了 4 中分布式事务:BASE 、TCC 、SAGA  你可以看看。
wei2629 小成 2024-8-21 14:04:23

分布式事务到是什么

我的理解简单来说就是原子性,只有成功和失败两种情况。
返回顶部