api - API 是否应该将所有工作委托(delegate)给其他服务?

标签 api rest architecture cloud microservices

假设我们有一个 API 服务器,它有多个端点来服务用户请求。我一直想知道在 API 服务器中实现逻辑与委托(delegate)给其他微服务之间的最佳权衡是什么。

例如,假设我们想要在 API 调用时从数据库中获取数据。应数据库查询:

  1. 由 API 本身执行吗?
  2. 委托(delegate)给一个单独的微服务来处理数据库查询?
  3. 委托(delegate)给比微服务更简单的东西,比如云中的 lambda 函数?

感谢您的帮助。

最佳答案

对于微服务,service itself is the owner of its own data 。这意味着两件事:

  1. 此服务是唯一可以直接访问其自身数据的应用
  2. 如果 ServiceB 想要对此数据执行任何操作,则必须通过 ServiceA 的 API(而不是直接通过数据库)进行操作

如果ServiceB需要频繁检索数据并且数据相当静态,那么ServiceB可以通过复制实现本地缓存。但事实来源仍然存在于 ServiceA。

关于api - API 是否应该将所有工作委托(delegate)给其他服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72095611/

相关文章:

php - 如何使用 PHP 在 MySQL 中插入空间数据?

.net - 是否有任何理由在 .NET 上使用 Win32 API(C 或 C++)?

architecture - Hyperledger Fabric 架构说明

java - Java包结构中的模块与层

php - 如何获取wordpress帖子的描述和标题?

javascript - Last.FM API - 轨道持续时间未定义

unit-testing - 在grails中模拟外部http请求

java - 无法使用@Value注释从Spring Boot中的属性文件中读取值

java - 从 Jersey RESTful Web 服务中抛出信息性错误消息

c# - 单个模块化组件应该与其他组件一起工作(组件=模块)