【发布时间】:2018-12-23 08:57:36
【问题描述】:
我正在尝试设计一个包含许多服务器的大型应用程序的后端。应该只有一个数据库(mongodb),并且所有服务器都应该连接到它。我还想以一种所有服务器都可以查询数据库中任何内容的方式设计后端。例如考虑User 模型。如果我有支付服务,它将需要查找有关用户的信息,身份验证服务等也需要。在 mongo(或在我的情况下为 mongoose)中执行此操作是将我的所有模型放在所有服务器都可以的地方看。
我想到的一个可能的解决方案是在 npm 上公开我的所有模型,然后我可以在每个服务器中要求它们,但这似乎不是一个很好的解决方案。在遵循最佳实践的情况下,我还可以采取哪些其他替代方法?
【问题讨论】:
-
解决方案完全基于您选择的架构,如果您想应用微服务,您可以将数据模型设置为一个服务。如果要搭建monorepo,可以使用lerna或yarn workspace来管理项目,将数据模型设置为包。即使使用您的解决方案,您也不需要在 npm 上公开您的模型,npm 也可以安装私有 git repo。