多个独立的mariadb用法:多个容器或一个? 隔离与效率?
我有一个build筑问题。
假设我们有一个有多个子系统的系统: A
, B
等等。 每个子系统都需要保存他们的数据,他们都使用MariaDB
。 子系统A
可能需要一个名为a_db
的database
(如在create database ...
) 而子系统B
可能需要一个名为b_db
的数据库。 而且, A
和B
之间没有数据共享
在微服务和docker之前的一个单一的世界中,通常要build立一个中心MariaDB
实例,并要求每个子系统使用它,并在共享实例上使用自己的 database
(也就是说, A
使用a_db
, B
使用b_db
等)
使用docker,我想我们也可以运行多个mariadb容器,并且每个都映射他们自己的卷用于存储(例如分别为/data/mdb_a
和/data/mdb_b
)。
A
和B
之间完全隔离是一个明显的优势。 A
会不小心混淆了B
的数据。 而且这两个子系统可以独立selectclosures/重新启动他们自己的MariaDB容器,甚至升级他们的MariaDB二进制文件。
另一方面,我的一些同事认为,运行多个MariaDB容器效率不高,这种方法会浪费资源。
他们的良好实证测量和文章是否讨论了两种方法之间的权衡?
容器化世界中的持久性存储仍处于起步阶段,在运行多个数据库副本(在这种情况下,mariadb)时,在高stream量环境中可能会出现问题。
运行多个mariadb副本,使用共享的持久性数据存储(例如NFS),无论您使用的是多less个数据库,都可能导致一些腐败问题。
我自己并没有经历过这些事情,但是在进行任何生产之前,您应该进一步研究在容器中运行数据库。 网上有很多关于这方面的文章。
很多人仍然在虚拟机或裸机上运行他们的数据库,只能在本地开发的容器中运行数据库。