126、MongoDB 事务与一致性保障
2000/5/18小于 1 分钟
MongoDB 事务与一致性保障
多文档事务在 ACID 要求下提供一致性。
核心概念
- 事务基于 WiredTiger Snapshot 实现。
- 需要复制集或分片集群。
- 超时与重试机制必须设计。
实战步骤
- 使用 session.startTransaction 包裹操作。
- 捕获错误并进行重试或补偿。
- 限制事务执行时间与写入量。
进阶建议
- 结合业务幂等令牌处理重复提交。
- 为事务构建监控指标。
- 在分片集群中控制跨分片事务比例。
代码示例
const session = client.startSession()
await session.withTransaction(async () => {
await orders.updateOne({ _id: id }, { $set: { status: 'paid' } }, { session })
await inventory.updateOne({ sku }, { $inc: { stock: -1 } }, { session })
})小结
掌握这些要点,{article['title']} 能帮助团队构建稳定可靠的 MongoDB 数据平台。