在容器化群集中,mongodb服务器应该在工作者还是核心服务上运行?

时间:2015-07-19 13:14:36

标签: mongodb containers cluster-computing coreos

我试图实现一个类似于coreos的生产架构的架构(如下所示)

enter image description here

我应该将数据库作为中央服务还是一个或多个工作人员运行?

我认为数据库需要某种复制,这让我觉得把它放在工作集群中更有意义,但我还不确定。

1 个答案:

答案 0 :(得分:1)

这应该作为工人运行。中央服务是CoreOS(主要是etcd)附带的基本功能。工作人员托管您的应用程序,数据库就是其中之一。您确实存在持久性问题,因为您的数据库将在重新启动之间记住状态。那么,有一个更大的问题,你如何做到这种持久性?其中一个是使用主机文件并为数据库提供与该主机的亲缘关系并装入主机文件。您可能考虑的另一件事是运行多个数据库(如果您的数据库技术支持该数据库)并复制该数据库,以便在不同的工作程序中有两个(或更多)副本。 (非亲合性)。如果数据库创建可应用于备份的事务日志,则可以在工作程序中管理这些事务日志。

要考虑的另一件事是不为数据库使用容器。数据库是一种奇怪的动物,它的护理和喂养与其他应用程序不同。因此,(在我看来)将数据库管理和维护在集群范围之外是合理的(但仍可由集群访问)。