MySQL 8.0 参考手册  / 第十八章 组复制  / 18.1 组复制背景  /  18.1.2 组复制用例

18.1.2 组复制用例

组复制使您能够通过将系统状态复制到一组服务器来创建具有冗余的容错系统。即使部分服务器随后发生故障,只要不是全部或多数,系统仍然可用。根据发生故障的服务器数量,该组可能会降低性能或可伸缩性,但它仍然可用。服务器故障是隔离和独​​立的。它们由组成员服务跟踪,该服务依赖于分布式故障检测器,该检测器能够在任何服务器自愿或由于意外停止离开组时发出信号。有一个分布式恢复程序来确保当服务器加入组时,它们会自动更新。无需服务器故障转移,多源更新无处不在,确保在单台服务器故障时即使更新也不会被阻塞。综上所述,MySQL Group Replication 保证了数据库服务的持续可用。

重要的是要了解,尽管数据库服务可用,但在服务器意外退出的情况下,连接到它的那些客户端必须重定向或故障转移到不同的服务器。这不是 Group Replication 试图解决的问题。连接器、负载均衡器、路由器或某种形式的中间件更适合处理此问题。例如,参见MySQL Router 8.0

总而言之,MySQL Group Replication 提供了一个高可用、高弹性、可靠的 MySQL 服务。

小费

要部署多个 MySQL 实例,您可以使用InnoDB Cluster ,它使您可以轻松地在MySQL Shell中管理一组 MySQL 服务器实例。InnoDB Cluster 将 MySQL Group Replication 包装在一个编程环境中,使您能够轻松部署 MySQL 实例集群以实现高可用性。此外,InnoDB Cluster 与MySQL Router无缝连接,使您的应用程序无需编写自己的故障转移过程即可连接到集群。但是,对于不需要高可用性的类似用例,您可以使用InnoDB ReplicaSet。可以在此处找到 MySQL Shell 的安装说明。

示例用例

以下示例是组复制的典型用例。

  • 弹性复制——需要非常流畅的复制基础设施的环境,其中服务器的数量必须动态地增加或减少,并且副作用尽可能少。例如,云数据库服务。

  • 高可用性分片 - 分片是实现写入横向扩展的一种流行方法。使用 MySQL Group Replication 实现高可用分片,其中每个分片映射到一个复制组。

  • 异步源副本复制的替代方案- 在某些情况下,使用单个源服务器使其成为一个单一的争用点。在某些情况下,写入整个组可能更具可扩展性。

  • 自治系统- 此外,您可以纯粹为了复制协议中内置的自动化而部署 MySQL Group Replication(已在本章和前几章中进行了描述)。