我最近在GitHub存储库系统设计入门上看到了系统设计示例,它显示了读/写API。我正在尝试实现this one作为实践。轮廓是这样的。

它分离了读和写API,我想知道这是逻辑上的分离还是它们是分离的服务器。
如果读操作比写操作多得多,那么将它们分开是不是很好?我们如何将读请求转发到这个服务器呢?
发布于 2020-02-04 15:51:53
查看CQRS - https://martinfowler.com/bliki/CQRS.html -它似乎暗示了这一点。但是,如果您打算使用纯粹的REST方法,那么在REST服务上实现可能会比较棘手。
当然,如果您确实有更多的读操作需要写入,那么有必要将API分开,以便您可以水平地扩展您的读API。另一方面,除非您也对数据库进行了伸缩,否则您仍然会有一个可能出现性能问题的单点。因此,虽然您可以添加多个read API来提高性能,但您可能可以通过服务使用者和API之间的缓存解决方案的几个实例来实现相同的好处。
为了回答您的最后一个问题,即如何将所有读请求定向到同一服务器-您可以基于HTTP方法(GET、POST等)在负载均衡器或API网关上进行路由。
https://stackoverflow.com/questions/60051987
复制相似问题