当有两个后端服务器时如何共享数据库模式?
Posted
技术标签:
【中文标题】当有两个后端服务器时如何共享数据库模式?【英文标题】:How to share DB schema when there are two backend servers? 【发布时间】:2020-12-08 17:24:06 【问题描述】:我正在开发一些服务器。该服务器由一个前端和两个后端组成。至此,我已经完成了一个后端的开发,我想开发另一个。两者都是快速服务器,而 db 正在使用 mongodb。这个时候,我正在使用mongoose模块进行开发,我想共享一个集合(即schema)。但我已经在一台服务器上创建了一个模型文件。如果是这样,我想知道我是否需要在我现在正在开发的服务器上生成相同的模型文件。因为以后修改模型文件,两个都要修改。
如果有好的方法,请举个例子告诉我。
谢谢。
【问题讨论】:
【参考方案1】:我有两个答案给你,一个是直接的,另一个是介绍微服务的概念。
答案 1 - 共享模块(NPM 或 GIT)
您可以创建一个额外的项目作为 NPM 库(可以通过 NPM 或 git 子模块安装)。 此库将公开一个工厂方法,该方法将接受 mongoose 选项并返回 mongoose 连接。
使用单个共享模块将更容易在更新数据库后更新每个后端(如果您有很多后端,则有点麻烦)。
答案 2 - 微服务方法
在微服务方法中,每个服务(后端)管理自己的自己的数据库,并且只管理它。这意味着每个服务都需要公开一个内部 API 以供其他服务使用。 因此,每个服务都没有共享库,而是有一个明确定义的内部 API,其他服务可以使用。
我建议研究 NestJS(NodeJS 微服务框架)以更好地了解如何处理微服务
不用说,我更喜欢 Answer 2,但它更复杂,您可能需要了解更多信息,然后再试一试。但我强调推荐它,因为微服务(如果实施得当)将使您的代码更具前瞻性。
【讨论】:
哦...感谢您向我解释这一点。以上是关于当有两个后端服务器时如何共享数据库模式?的主要内容,如果未能解决你的问题,请参考以下文章