我正在构建 RESTful Web 服务,我想让它参与分布式事务。
一个示例场景是,我的 REST 服务可能将文件保存在服务器上的某个位置,同时调用者将此文件标记为保存在其数据库中。但是,如果文件服务器已满,或者他的数据库调用失败,则不应提交其他操作。
我可以做什么来履行我的承诺?我想找到一个适用于 .Net 和 Java 客户端的解决方案。我知道这是一个棘手的问题,我想知道是否有人有任何提示或见解?谢谢
如果我理解正确的话,您指的是对不同 REST 端点的多个请求参与分布式事务。
在这种情况下,您应该看一下这个相关问题,其中的答案基本上表明分布式事务是一种在概念上违反 REST 原则的场景。
但是,您可以使用此答案中解释的解决方法来实施解决方案。
您还可以看看 RETRO,这是一种实现 RESTful 事务的尝试性方法,其核心思想是将 ACID 事务的每个元素视为资源。
相关资源: