假设我们有一个 API 服务器,它有多个端点来服务用户请求。我一直想知道在 API 服务器中实现逻辑与委托(delegate)给其他微服务之间的最佳权衡是什么。
例如,假设我们想要在 API 调用时从数据库中获取数据。应数据库查询:
- 由 API 本身执行吗?
- 委托(delegate)给一个单独的微服务来处理数据库查询?
- 委托(delegate)给比微服务更简单的东西,比如云中的 lambda 函数?
感谢您的帮助。
最佳答案
对于微服务,service itself is the owner of its own data 。这意味着两件事:
- 此服务是唯一可以直接访问其自身数据的应用
- 如果 ServiceB 想要对此数据执行任何操作,则必须通过 ServiceA 的 API(而不是直接通过数据库)进行操作
如果ServiceB需要频繁检索数据并且数据相当静态,那么ServiceB可以通过复制实现本地缓存。但事实来源仍然存在于 ServiceA。
关于api - API 是否应该将所有工作委托(delegate)给其他服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72095611/