Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
微服务和数据库:mongodb docker-如何设置容器_Mongodb_Docker_Database Design_Architecture_Microservices - Fatal编程技术网

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

微服务和数据库:mongodb docker-如何设置容器,mongodb,docker,database-design,architecture,microservices,Mongodb,Docker,Database Design,Architecture,Microservices,我正在使用微服务架构、mongodb、nodejs和docker创建一个应用程序 我读到,每个微服务都应该有自己的数据库,我猜每个微服务都生活在一个单独的容器中。 所以我猜1个微服务=1个容器 但是他们的数据库又如何呢?他们是否也应该生活在同一个微服务容器中? 因此,它将是1个微服务=1个容器(带有1个Mongo映像+1个NodeJS映像) 还是更像1微服务=1容器(应用程序)+1容器(数据库) 我现在正试图实现这种方式,但每次我关闭容器时,卷都会被删除 所以我想知道,我应该如何设置我的数据库和

我正在使用微服务架构、mongodb、nodejs和docker创建一个应用程序

我读到,每个微服务都应该有自己的数据库,我猜每个微服务都生活在一个单独的容器中。 所以我猜1个微服务=1个容器

但是他们的数据库又如何呢?他们是否也应该生活在同一个微服务容器中? 因此,它将是1个微服务=1个容器(带有1个Mongo映像+1个NodeJS映像)

还是更像1微服务=1容器(应用程序)+1容器(数据库)

我现在正试图实现这种方式,但每次我关闭容器时,卷都会被删除

所以我想知道,我应该如何设置我的数据库和容器来正确应用微服务体系结构


提前感谢您的反馈

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

(假设您纯粹在本地运行:这种情况类似于您的应用程序自己启动和停止数据库。乍一看,这在管理上稍微容易一些,但是如果应用程序与数据库之间存在问题,或者如果您需要扩展事物,或者……,那么直接管理数据库会更愉快。)

有一个很好的更高层次的描述:在这个问题中有六个服务,加上其中一个有一个备份数据库,并且每个都运行在单独的容器中(在这个问题中是单独的Kubernetes部署/Statefulset/Pods)可能是一个单独的单元,但您需要将两半部署在单独的容器中