我最近在 GitHub 存储库 system-design-primer 上看到了系统设计示例,它显示了读/写 API。我正在尝试实现 this one 以进行练习。大纲是这样的。
它分离了读写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/