可以对多个分布式数据目的地Nodejs进行事务控制吗



我让案例将数据写入nodejs 中的多个数据目的地

writeToMySql(data); //Step 1
postRestApi(data);  //Step 2
writeToSqlServer(data); //Step 3 

所以问题是数据目的地是分布式的。我想做一些类似";交易";,如果3个步骤中的任何一个步骤失败,则所有1、2、3都是回滚

但是步骤2是rest Api,如果数据被发布到Api,我不能回滚,因为数据被放到另一个服务器/服务中;

那么,有什么方法可以实现这个概念吗?感谢大家;

一般来说,Node JS和其他"现代的";软件开发平台。您需要依赖像sagas这样的旧技术,这意味着以编程方式检测和回滚事务的开发开销。

但重要的是要记住,这与其说是语言问题,不如说是平台问题。例如,HTTP不是事务性的,所以如果您在HTTP上实现REST风格的API,则无法获得其他企业分布式计算功能。例如,如果您使用SOAP或CORBA(这很常见(实现了REST风格,那么是的,XA和其他功能就是这些协议的一部分。

虽然这种情况正在慢慢改变,但在1980和1990年开发的许多分布式计算功能,如分布式事务管理和安全/身份传播,都没有包括在";现代的";由于对软件开发缺乏认识。这些传统特征正在慢慢地被包括在";现代的";软件开发作为支持者在问题空间获得更多经验。

最新更新