architecture - 读写 API,它们是独立的服务吗?

标签 architecture

我最近在 GitHub 存储库 system-design-primer 上看到了系统设计示例,它显示了读/写 API。我正在尝试实现 this one 以进行练习。大纲是这样的。
enter image description here

它分离了读写API,我想知道这只是逻辑分离还是它们分离服务器。

如果读取多于写入,将它们分开是否好?我们如何将读取请求转发到该服务器?

最佳答案

查看 CQRS - https://martinfowler.com/bliki/CQRS.html - 它似乎暗示了这一点。但是,如果您要采用纯粹的 REST 方法,那么在 REST 服务上实现可能会很棘手。

当然,如果您确实有更多的读取和写入,则可以将 API 分开,以便您可以水平扩展读取 API。另一方面,除非您也扩展数据库,否则您仍然会有性能问题可能出现的单一点。因此,虽然您可以添加多个读取 API 来提高性能,但您可能可以通过服务使用者和 API 之间的缓存解决方案的几个实例来实现相同的好处。

并回答关于如何将所有读取请求定向到同一服务器的最后一个问题 - 您可以基于 HTTP 方法(GET、POST 等)在负载均衡器或 API 网关上执行该路由。

关于architecture - 读写 API,它们是独立的服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60051987/

相关文章:

c# - 如何重构在字典中存储大量 SqlCommand 的大类

compilation - 动态链接和静态链接的指令点值

ruby-on-rails - 合并多个 Rails 应用程序,并能够启用/禁用每个应用程序

angular - 对于使用 ngrx 存储在状态中的数组来说,多大才算太大?

asp.net-mvc - asp.net mvc 我是否为我的模型使用了太多类?

iphone - 如何在我的 iOS 应用程序中正确实现服务类?

c# - ASP.NET MVC - 合并多个小应用程序

c# - 在所有解决方案项目中共享域模型对象

Angular - 何时使用以及何时不将 Angular 用于新应用程序

oop - DTO与领域对象、WCF以及DB层交互