首页 > 解决方案 > 是否有跨多个 API 实施协调操作的既定实践?

问题描述

编写一个服务,该服务必须与多个 API 通信,并且还要对 DB 执行一些事务。显然,整个异步调用序列中的任何一个都可能失败,然后我想我将不得不回滚到目前为止已经完成的步骤。在 DB 的情况下,任务的明显解决方案是使用事务。因此,如果任何步骤失败 - 事务只会被回滚。但是在混合分布式环境中发生同样的事情呢?

这里有哪些最佳实践?有吗?

标签: restapiwebsocketmicroservices

解决方案


无论您是仅使用 rest API 进行通信还是使用其他协议或方法(如 Web Sockets),您都可以应用 Saga 模式。

该实现需要对不同类型的调用进行抽象,但仍将其视为 Saga 模式。Saga 的编排仍处于应用程序级别,因此无论它是 REST、WebSockets、WSDL 还是其他东西,您都可以控制它。

除了莱昂纳多提供的资源外,请查看此答案


推荐阅读