我有一个建筑问题。多个独立的mariadb用法:多个容器或一个?隔离与效率?
假设我们有一个有多个子系统的系统:A
,B
等等。这些子系统中的每一个都需要保存他们的数据,他们都使用MariaDB
。子系统A
可能需要database
(如create database ...
),调用a_db
;而子系统B
可能需要一个名为b_db
的数据库。此外,还有跨A
和B
没有数据共享在微服务和泊坞窗之前单片世界,是很常见的建立一个中央MariaDB
实例,并要求每个子系统使用它,并只使用自己的database
而在共享实例(也就是说,A
使用a_db
,B
使用b_db
,等等)
随着泊坞窗,我认为,我们还可以有多个MariaDB的容器运行,它们分别对应自己的体积存储(例如分别为/data/mdb_a
和/data/mdb_b
)。
一个明显的优势是A
和B
之间的完全隔离。不用担心A
可能会与B
的数据意外混淆。这两个子系统可以独立选择关闭/重启他们自己的MariaDB容器,甚至升级他们的MariaDB二进制文件。
另一方面,我的一些同事认为运行多个MariaDB容器效率不高,这种方法会浪费资源。
他们的良好经验测量和文章是讨论两种方法之间的权衡?
正如你所说,有折衷。 “隔离”比“效率”更重要。您还不知道应用程序是否会接近使用服务器的功率。 –
我曾与一位同事进行过这场辩论,我们想出了一个衡量什么时候需要包含数据库的指标,而且很简单,我们衡量每个应用程序的总数据库问题数量以及这些崩溃数量影响其他应用程序的次数。我们得到的百分比,如果它超过30%,我们会隔离有问题的应用程序,这会增加其他系统的稳定性。我会试着想出一个解释我们最终解决方案的答案。我们最终将所有内容集中到了一起,但我们不得不以特殊的方式处理数据库容器。 –