0

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

  1. 我会创建 2 个或更多 mysql-ndb 集群节点
  2. 我会创建 2 个或更多 Web 应用程序节点,上面有 MySQL 前端服务器,连接到 ndb 存储。
  3. 如果我要部署一个新的 web 应用程序节点,它将始终与安装在其上的 mysql 前端服务器一起提供。因此,每个 Web 应用程序都将连接到 localhost 以进行 MySQL 连接。

集群场景

我知道在这种情况下有安全考虑。Web 应用程序位于反向代理之后,不能从外部直接访问。

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

4

1 回答 1

1

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

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

我还会推荐以下内容:

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

MySQL 集群架构图

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

MySQL 集群 101 MySQL 高可用性架构

于 2014-07-27T15:36:25.283 回答