数据库docker容器设计

时间:2015-12-24 12:42:55

标签: mysql docker

我正在使用linux机器上的docker容器。我必须创建数据库docker容器。我选择了MySQL数据库。我有三个要求:

  1. 负载均衡 - 数据库中包含一个巨大的表格。 1亿记录。因此,我们需要跨多个服务器共享该表。为此,我选择了MySQL Cluster。我需要根据sharde密钥分发数据。负载平衡将由HAProxy完成。
  2. 阙:如果我错了,请纠正我?提供更好的解决方案

    1. 持久性 - 即使所有数据库容器都已死亡,它也应该能够从中恢复为此,我计划创建仅限数据的docker容器。
    2. Que:如果仅数据的docker容器死了,这个容器能够恢复吗?如果它出现,音量有变化吗?

      1. 可用性 - 由于将有多个具有副本功能的SQL服务器,即使一台服务器死机,其他服务器也将成为主服务器。
      2. 阙:如果我错了,请纠正我?提供更好的解决方案

1 个答案:

答案 0 :(得分:4)

曾几何时,我记得有一百万条记录的数据库表被认为是“大数据”......

enter image description here

在假设您需要跨多台计算机拆分数据集之前,我强烈建议您首先熟悉在Docker容器中运行单个数据库。有足够的资源,MySQL能够扩展到1亿条记录。

Docker旨在将进程与运行在同一主机上的其他进程隔离开来。这为单片应用程序带来了挑战,单片应用程序通常具有涉及通过某种形式的基于主机的IPC(进程间通信)彼此通信的多个进程的软件体系结构。这并不意味着它们不能集装箱化,但是大型多处理容器看起来和操作很像虚拟机,这意味着可能是码头工具不太适合技术。

在我变得过于消极之前,完全有可能使用Docker运行集群MySQL。谷歌回复了几个例子:

我的警告是,您看到在多个Docker主机上运行这些集群的示例较少,这意味着用例主要用于当前的演示或测试。