我有一个建筑问题。
假设我们有一个具有多个子系统的系统:A
, B
, 等等。每个子系统都需要保存其数据,并且它们都使用MariaDB
。子系统A
可能需要一个database
(as in create database ...
)称为a_db
;和子系统B
可能需要一个名为b_db
。此外,跨部门之间不存在数据共享A
and B
在微服务和 Docker 出现之前的整体世界中,建立一个中心是很常见的MariaDB
实例并要求每个子系统使用它并只需使用你自己的 database
在共享实例上(即A
uses a_db
, B
uses b_db
, 等等)
使用 docker,我认为我们还可以运行多个 mariadb 容器,并且每个容器映射自己的存储卷(例如/data/mdb_a
and /data/mdb_b
, 分别)。
一个明显的优点是之间完全隔离A
and B
。就不会有这样的担心A
可能会不小心弄乱B
的数据。并且两个子系统可以独立选择关闭/重新启动自己的 MariaDB 容器,甚至升级其 MariaDB 二进制文件。
另一方面,我的一些同事认为运行多个 MariaDB 容器效率低下,而且这种方法会造成资源浪费。
他们的良好实证测量和文章是否讨论了两种方法之间的权衡?
容器化世界中的持久存储仍处于起步阶段,在高流量环境中运行多个数据库副本(在本例中为 mariadb)时可能会出现问题。
使用共享持久数据存储(例如 NFS)运行多个 mariadb 副本,无论您使用多少个数据库,都可能会导致一些损坏问题。
我自己没有经历过这些事情,但在生产中进行任何操作之前,您应该进一步研究在容器中运行数据库。网络上有很多关于此的文章。
许多人仍然在虚拟机或裸机上运行数据库,并且仅在容器中运行数据库以进行本地开发。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)