微服务和数据库:mongodb docker-如何设置容器

时间:2019-03-10 11:36:34

标签: mongodb docker database-design architecture microservices

我正在使用mongodb,nodejs和docker使用微服务架构创建应用。

我读到,每个微服务都应该有自己的数据库,而且我猜每个微服务都位于单独的容器中。 所以我想1个微服务= 1个容器

但是他们尊敬的数据库又该如何生活在同一个微服务容器中呢? 因此它将是1个微服务= 1个容器(带有1个mongo映像+ 1个nodejs映像)

还是更像1micro-service = 1container(app)+ 1container(database)

我现在正在尝试以这种方式实现,但是每次我放下容器时,都会删除该卷...

所以我想知道如何设置数据库和容器以正确应用微服务架构

在此先感谢您的反馈

1 个答案:

答案 0 :(得分:1)

您应该在至少一个容器中运行一项服务。在您所描述的情况下,基本上完全出于您所描述的原因,在单独的容器中运行数据库通常很重要(您不必仅因为更新了应用程序代码而销毁并重新启动数据库)。

(想象一下,您纯粹是在本地运行的:这种情况类似于您的应用程序自行启动和停止数据库。乍一看在管理上要容易一些,但是如果应用程序与数据库之间有麻烦,或者您需要扩展规模,或者...,直接管理数据库会更加愉快。)

This Kubernetes question具有较高的概况:在该问题中,有六个服务,其中一个具有后备数据库,并且每个服务都在单独的容器中运行(在该问题中,单独的Kubernetes部署/状态集/窗格)。从逻辑上讲,“服务B及其支持数据库”可能是一个单元,但是您将这两个部分部署在单独的容器中。