我正在使用mongodb,nodejs和docker使用微服务架构创建应用。
我读到,每个微服务都应该有自己的数据库,而且我猜每个微服务都位于单独的容器中。 所以我想1个微服务= 1个容器
但是他们尊敬的数据库又该如何生活在同一个微服务容器中呢? 因此它将是1个微服务= 1个容器(带有1个mongo映像+ 1个nodejs映像)
还是更像1micro-service = 1container(app)+ 1container(database)
我现在正在尝试以这种方式实现,但是每次我放下容器时,都会删除该卷...
所以我想知道如何设置数据库和容器以正确应用微服务架构
在此先感谢您的反馈
答案 0 :(得分:1)
您应该在至少一个容器中运行一项服务。在您所描述的情况下,基本上完全出于您所描述的原因,在单独的容器中运行数据库通常很重要(您不必仅因为更新了应用程序代码而销毁并重新启动数据库)。>
(想象一下,您纯粹是在本地运行的:这种情况类似于您的应用程序自行启动和停止数据库。乍一看在管理上要容易一些,但是如果应用程序与数据库之间有麻烦,或者您需要扩展规模,或者...,直接管理数据库会更加愉快。)
This Kubernetes question具有较高的概况:在该问题中,有六个服务,其中一个具有后备数据库,并且每个服务都在单独的容器中运行(在该问题中,单独的Kubernetes部署/状态集/窗格)。从逻辑上讲,“服务B及其支持数据库”可能是一个单元,但是您将这两个部分部署在单独的容器中。