ACID 和 AWS DynamoDB 事务:全有或全无的来龙去脉

发布日期:2026-07-19 08:37:04   来源 : 杭州电子商务研究院    作者 :Ryan Kroonenburg    浏览量 :4
Ryan Kroonenburg 杭州电子商务研究院 发布日期:2026-07-19 08:37:04  
4

一位来历不明的智者曾经说过 “要么做,要么不做。没有尝试。”无论你是想让一架12,000 磅重的X-Wing 从达戈巴沼泽中悬浮起来,还是编写孤注一掷的数据库云交易,这句明智的建议都是正确的。有时,接近并不能解决问题。 以在线金融交易为例。假设你欠朋友昨天的午餐钱。你打开 Venmo,找到你的朋友,输入“10”表示你想寄给他们的 10 美元,加上一个披萨表情符号,然后点击支付。但奇怪的是,几秒钟后你习惯收到的通知并没有出现。出了问题。现在怎么办?你的 10 美元在电子以太中丢失了吗?你的朋友还会再请你吃午饭吗? 在这种情况下,除非披萨还款操作的所有部分都已完成,否则你不想写入或更新任何内容。为此,我们可以转向 AWS DynamoDB 交易。

什么是 DynamoDB 事务?

DynamoDB 是 Amazon 的可扩展 NoSQL 数据库服务。如果您曾经使用过 DynamoDB,那么您可能已经注意到,当您需要在表内和跨表创建多个全有或全无操作时,事情会变得复杂。这就是为什么 Amazon 在 2018 年末推出了DynamoDB 事务。DynamoDB 事务用于支持需要全有或全无方法的关键任务应用程序,即使系统发生中断也是如此。它们允许云工程师将复杂的业务逻辑实现到单个原子事务中,该事务可以由多个相关任务组成。这意味着它们对于处理订单履行和管理、处理金融交易或构建多人游戏非常有用。

ACID:对人类不利,但对交易有利

如果科幻小说和视频游戏教会了我们什么,那就是酸是有害的。你不会想在从一个平台跳到另一个平台时掉进酸里,如果你正在处理异形生物的侵扰,你需要巧妙地消灭它们,以免烧穿你的飞船——或者你自己。但在事务的世界里,ACID 是一件非常好的事情。ACID 事务的概念比 DynamoDB 事务早了几十年。但 DynamoDB 事务可以是 ACID 事务。ACID 是一个(很棒的)首字母缩略词,用于描述数据库事务的四个理想属性。  原子性:每个事务都被视为一个单元,不能部分完成——这是它们全有或全无的关键因素。一致性 事务是有效的,并且必须使数据库处于有效状态。这可以防止数据库被破坏或遭受数据完整性问题。 隔离性:不同的事务不相互依赖。即使并行或顺序处理,事务的效果最终都是一样的。 持久性:已提交的事务将保持提交状态,因为数据已写入磁盘,而不仅仅是保存在内存中。因此,即使发生系统故障(例如断电),也不会出现故障。

DynamoDB 事务实际应用

回到我们之前的披萨还款情况,您可以看到 ACID 事务对于成功使用云至关重要的原因。其中涉及多个几乎同时发生的步骤。 接收转账请求 → 验证原始账户中是否有足够的资金 → 借记原始账户 → 贷记收款账户 这些步骤几乎同时发生,并且需要全有或全无的执行。这就是为什么 ACID 事务对于成功使用云以及偿还披萨债务至关重要的原因。您可以 在我们的AWS Certified Developer Associate 课程中了解有关DynamoDB 事务的更多信息
以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据