答案1
使用类似该页所示设置,您可以获得 HPC 和一些 HA 元素。如果其中一个 NDBD 服务器发生故障,SQL 服务器将连接到另一个服务器,并且通常无需干预即可继续运行。如果其中一个 SQL 服务器发生故障,应用程序必须知道连接到另一个 SQL 服务器(或者需要有一个抽象层)才能保持 HA。
答案2
副本用于跨服务器冗余,从而提供更高的可用性。副本数量与分区中可能发生故障但不会导致 MySQL Cluster 脱机的服务器数量直接相关。
分区用于在服务器之间拆分处理,从而提供更高的性能。分区数量与 MySQL Cluster 查询将在哪些服务器之间分配直接相关。
让我看看我能否解释清楚。如果您有两台服务器,每台服务器有两个副本,则写入性能可能会降低,因为必须复制数据。在这两种情况下,无论是使用单个副本还是两个副本,读取性能都可能会增强,因为有两个分区(两台服务器)可以拆分查询。
MySQL Cluster 不提供 MySQL Server 前端的冗余,因此它不是现成的即时 HA 解决方案。您需要应用程序逻辑来定位可用的 SQL Server,或者需要服务监控/网络逻辑来将发生故障的 SQL Server 替换为正常运行的 SQL Server。(您也可以尝试直接在应用程序服务器上安装 MySQL Server 前端。)
此外,MySQL Cluster 的性能影响或优势将根据应用程序使用数据库的方式以及存在的瓶颈而有所不同。从本地套接字切换到网络连接将增加延迟。对缓存数据的简单查询将导致 SQL 服务器出现瓶颈。另一方面,受处理器或磁盘 I/O 限制的某些处理将受益匪浅。了解 MySQL Cluster 对您的应用程序的确切性能影响或优势的最佳方法可能就是对其进行测试。
答案3
首先,大多数 HPC 集群都包含 HA 的某些方面(但反之则不然)。这是因为为了更快地工作,每个节点都必须在与其他节点没有太多协调的情况下工作;因此通常有许多部分可以发生故障而不会停止其他部分。
但最后,我想说 MySQL 集群主要用于 HPC,而不是 HA。