MySQL 集群架构注意事项

Posted

技术标签:

【中文标题】MySQL 集群架构注意事项【英文标题】:MySQL Cluster Architecture Considerations 【发布时间】:2014-03-12 06:37:29 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

我还推荐以下内容:

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

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

MySQL CLuster 101 MySQL High Availability Architectures

【讨论】:

以上是关于MySQL 集群架构注意事项的主要内容,如果未能解决你的问题,请参考以下文章

MySQL集群架构05分组复制架构和NDB集群架构

MySQL集群MGR架构for单主在线转为多主模式

Flink集群架构

MySQL大系《Mysql集群架构》

Linux云计算-MySQL-高可用集群架构-MHA 架构

大型网站Mysql分布式集群架构技术详解教程