gpt4 book ai didi

node.js - 在多个数据库上使用 Mongoose-Transactions

转载 作者:行者123 更新时间:2023-12-03 12:11:42 24 4
gpt4 key购买 nike

我正在创建一个由多个微服务组成的 Node.js API。

每个微服务负责我的应用程序的一个或多个功能。但是,我的数据被构建到多个数据库中,每个数据库都有多个集合。

现在我需要一项服务来跨多个数据库执行原子操作。如果一切都发生在同一个数据库中,我会使用普通事务。但是,我不知道如何对多个数据库执行此操作,或者这是否可能?

Example:

One of the Microservices takes care of creating users. A user must be created inside two databases. However, this should happen atomically, i.e. if the user is created, it must be created in both databases.



更新 : MongoDB's official docs声明如下:

With distributed transactions, transactions can be used across multiple operations, collections, databases, documents, and shards.



不过,我还没有找到任何关于如何使用 mongoose 执行分布式事务的信息。

如果有人能给我一些关于这个主题的澄清,我会非常高兴。

最佳答案

您需要使用 SAGA pattern微服务架构。

SAGA 模式分为两种类型:

  • 基于编舞的传奇
  • 基于编排的传奇

  • 如果您想从单个服务管理分布式事务,那么您可以使用基于 Orchestration 的 saga (2)。

    因此,通过这种模式,您可以使用补偿事务来实现一个分布式事务,该事务要么执行一系列操作,要么沿该链回滚。

    我还建议在此 site 上研究微服务架构的模式并推荐 book .

    关于node.js - 在多个数据库上使用 Mongoose-Transactions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60849686/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com