rest - 是否有跨多个 API 实施协调操作的既定实践?
问题描述
编写一个服务,该服务必须与多个 API 通信,并且还要对 DB 执行一些事务。显然,整个异步调用序列中的任何一个都可能失败,然后我想我将不得不回滚到目前为止已经完成的步骤。在 DB 的情况下,任务的明显解决方案是使用事务。因此,如果任何步骤失败 - 事务只会被回滚。但是在混合分布式环境中发生同样的事情呢?
这里有哪些最佳实践?有吗?
解决方案
无论您是仅使用 rest API 进行通信还是使用其他协议或方法(如 Web Sockets),您都可以应用 Saga 模式。
该实现需要对不同类型的调用进行抽象,但仍将其视为 Saga 模式。Saga 的编排仍处于应用程序级别,因此无论它是 REST、WebSockets、WSDL 还是其他东西,您都可以控制它。
除了莱昂纳多提供的资源外,请查看此答案。
推荐阅读
- asp.net - 如何在asp.net mvc的url中添加页面标题?
- django - pipenv 不在 ubuntu 19.04 中安装 django
- python-3.x - 问题在函数中返回小写的唯一单词:/
- c# - 在 json 字符串中用换行符删除 \r\n
- google-apps-script - 使用Apps Script删除Google表格中的空行后复制数据?
- android - 为什么 ViewModelProvider 会在屏幕旋转时创建新的视图模型实例?
- java - 对输入数字进行排序
- django - 无法运行 Django 应用程序。ERR_CONNECTION_REFUSED
- python - 使用awk将列转换为行
- python - 如何在 pandas Dataframe KeyError: False 中索引出数字的值