我们计划在单个事务中上传 blob 中的一些文件和 Cosmos Db 中的数据
是否可以在 Azure Cosmos DB 和 Azure Blob 存储之间实现分布式事务?如果任何操作失败,则其他操作也应该恢复。
如果不可能,那么是否有任何理想的方法可以通过任何 Azure 组件实现此功能?
最佳答案
据我所知,跨多个azure组件没有这样的事务机制(如果是的话,可能只是针对sql数据库)。
我的想法:
1.使用Azure Function,请参见此案例:Transactions in Azure Functions with multiple outputs 。您可以按照@Mikhail Shilkov 提到的解决方法,使用服务总线。一些细节在这个link .
2.自行编程实现try-catch。将所有业务包含在一个try-catch范围内,如果捕获任何异常,则在数据已存在的情况下执行删除操作。
关于azure - 使用 Azure Cosmos 和 Blob 存储的分布式事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57589701/