多个独立的mariadb用法:多个容器还是一个?隔离与效率?

时间:2017-10-11 18:09:22

标签: docker database-design architecture mariadb

我有一个架构问题。

假设我们的系统有多个子系统:AB等等。这些子系统中的每一个都需要保留其数据,并且都使用MariaDB。子系统A可能需要database(如create database ...a_db;子系统B可能需要一个名为b_db的数据库。此外,AB

之间没有数据共享

在微服务和docker之前的单片世界中,通常设置一个中心MariaDB实例并要求每个子系统使用它并只使用您自己的 {{ 1}}在共享实例上(即database使用Aa_db使用B,依此类推)

使用docker,我认为我们还可以运行多个mariadb容器,每个容器都会映射自己的卷进行存储(例如分别为b_db/data/mdb_a)。

明显的优势是/data/mdb_bA之间的完全隔离。不用担心B可能会意外地弄乱A的数据。这两个子系统可以独立选择关闭/重启自己的MariaDB容器,甚至可以升级它们的MariaDB二进制文件。

另一方面,我的一些同事认为运行多个MariaDB容器效率低下,这种方法浪费了资源。

他们的良好经验测量和文章是否讨论了两种方法之间的权衡?

1 个答案:

答案 0 :(得分:1)

容器化世界中的持久存储仍处于起步阶段,在运行多个数据库副本(在本例中为mariadb)时,在高流量环境中可能会出现问题。

使用共享的持久性数据存储(例如NFS)运行多个mariadb副本,无论您使用多少个数据库,都可能导致一些损坏问题。

我自己没有经历过这些事情,但是你应该在进行生产之前进一步研究在容器中运行数据库。网上有很多关于此的文章。

很多人仍在虚拟机或裸机上运行数据库,只在容器中运行数据库,仅用于本地开发。