有两个后端服务器时如何共享数据库架构?

问题描述

我正在开发一些服务器。该服务器由一个前端和两个后端组成。到目前为止,我已经完成了一个后端的开发,而我想开发另一个后端。两者都是快递服务器,并且db使用mongodb。目前,我正在使用mongoose模块进行开发,并且希望共享一个集合(即模式)。但是我已经在一台服务器上创建了一个模型文件。如果是这样,我想知道是否需要在我现在正在开发的服务器上生成相同的模型文件。因为如果以后修改模型文件,则必须同时修改两者。

如果有一个好的方法,请举例说明。

谢谢。

解决方法

我为您提供两个答案,一个是直接的,另一个将介绍微服务的概念。

答案1-共享模块(NPM或GIT)

您可以创建一个其他项目,该项目将是NPM库(可以通过NPM或git子模块安装)。 这个lib将公开一个工厂方法,该方法将接受mongoose选项并返回mongoose连接。

使用单个“共享”模块将使更新数据库后更容易更新每个后端(如果您有很多后端,这会很麻烦)。


答案2-微服务方法

在微服务方法中,每个服务(后端)仅管理其自己的数据库。这意味着每个服务都需要公开内部API供其他服务使用。 因此,每个服务都没有共享lib,而是具有定义明确的内部API,其他服务可以使用该内部API。

我建议您研究一下NestJS(NodeJS微服务框架),以便更好地了解如何使用微服务


不用说,我更喜欢答案2 ,但是它更加复杂,您可能需要学习更多然后再尝试。但我要特别推荐它,因为微服务(如果实施得当的话)将使您的代码更受未来的考验。