MySQL集群架构注意事项

时间:2014-03-12 06:37:29

标签: mysql architecture mysql-cluster

我们将在未来几周内部署一个新创建的WebApplication,这个项目是我作为软件工作的人。我们预计前6个月不会出现高负荷,但我们希望以可扩展的方式构建系统架构。我有一个想法,但不确定这是否常见或表现良好:

  1. 我将创建2个或更多mysql-ndb集群节点
  2. 我将在其上创建2个或更多Web应用程序节点,并连接到ndb存储。
  3. 如果我要部署一个新的webapplication节点,它将始终随附安装的mysql Frontend服务器。因此,每个Web应用程序都将连接到localhost以进行MySQL连接。
  4. Cluster Scenario

    我知道在这种情况下存在安全性问题。 Web应用程序位于反向代理之后,无法从外部直接访问。

    这种情况有什么缺点吗?只是一个理论问题;如果我在存储层上拥有比服务器上的NDB节点更多的MySQL服务器呢?

1 个答案:

答案 0 :(得分:1)

不要认为有任何重大缺点。只需考虑通过代理添加的额外延迟。

您可以根据需要添加任意数量的MySQL服务器,它们不会影响存储/数据节点的数量。它只允许更多客户端立即将查询推送到数据/存储节点。考虑使用multi-thread storage node(ndbmtd)快速查询和返回数据。

我还建议如下:

  • 添加其他管理节点(ndb_mgmd)
  • 在SQL节点/ MySQL服务器前面添加一个负载均衡器,以进一步从数据库基础架构中抽象出您的应用程序。这将有两个好处,如果其中一个SQL节点出现故障,则不必重新启动应用程序。您将能够升级单个SQL节点,而对应用程序的影响最小。

MySQL Cluster Architecture Diagram

此外,如果您想阅读更多内容。自己进行研究后,您可以通过阅读博客文章来节省时间:

MySQL CLuster 101 MySQL High Availability Architectures