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

我有一个build筑问题。

假设我们有一个有多个子系统的系统: AB等等。 每个子系统都需要保存他们的数据,他们都使用MariaDB 。 子系统A可能需要一个名为a_dbdatabase (如在create database ... ) 而子系统B可能需要一个名为b_db的数据库。 而且, AB之间没有数据共享

在微服务和docker之前的一个单一的世界中,通常要build立一个中心MariaDB实例,并要求每个子系统使用它,并在共享实例上使用自己的 database (也就是说, A使用a_dbB使用b_db等)

使用docker,我想我们也可以运行多个mariadb容器,并且每个都映射他们自己的卷用于存储(例如分别为/data/mdb_a/data/mdb_b )。

AB之间完全隔离是一个明显的优势。 A会不小心混淆了B的数据。 而且这两个子系统可以独立selectclosures/重新启动他们自己的MariaDB容器,甚至升级他们的MariaDB二进制文件。

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

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

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

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

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

很多人仍然在虚拟机或裸机上运行他们的数据库,只能在本地开发的容器中运行数据库。