MySql 中文参考指南

Chapter 23 InnoDB Cluster

本章介绍 MySQL InnoDB Cluster,它结合了 MySQL 技术,使您可以为 MySQL 部署和管理完整集成的 hogh 可用性解决方案。本内容是对 InnoDB Cluster 的高级概述,如需完整文档,请参见 MySQL InnoDB Cluster

InnoDB 集群不支持 MySQL NDB 集群。有关 MySQL NDB 集群的更多信息,请参阅 Chapter 25, MySQL NDB Cluster 9.0Section 25.2.6, “MySQL Server Using InnoDB Compared with NDB Cluster”

InnoDB 集群至少包含三个 MySQL Server 实例,并提供了高可用性和可扩展性功能。InnoDB 集群使用以下 MySQL 技术:

  1. MySQL Shell,这是 MySQL 的高级客户端和代码编辑器。

  2. MySQL Server 和 Group Replication,它使一组 MySQL 实例能够提供高可用性。InnoDB 集群 提供了一种可替代、易于使用的程序方式来使用组复制。

  3. MySQL Router,一个轻量级中间件,它在您的应用程序和 InnoDB 集群之间提供透明路由。

下图概述了这些技术如何协同工作:

图 23.1 InnoDB 集群概览

在 MySQL Group Replication 中构建提供了自动成员管理、容错、自动故障转移等功能。InnoDB 群集通常以单主模式运行,具有一个主实例(读写)和多个从属实例(只读)。高级用户还可以利用 multi-primary 模式,在该模式中所有实例都是主实例。甚至可以在 InnoDB 群集联机时更改群集拓扑,以确保尽可能高的可用性。

您使用 MySQL Shell 提供的 AdminAPI 与 InnoDB 集群一起工作。AdminAPI 在 JavaScript 和 Python 中均可用,非常适合 MySQL 部署的脚本编写和自动化,从而实现高可用性和可扩展性。通过使用 MySQL Shell 的 AdminAPI,您不必手动配置许多实例。相反,AdminAPI 为 MySQL 实例集提供了一个高效的现代化界面,使您能够从一个中心工具配置、管理和监控部署。

要开始使用 InnoDB 集群,您需要安装并启动 MySQL Shell。您需要一些装有 MySQL Server 实例的主机,而且还可以安装 MySQL Router。

InnoDB 集群支持 Docker,这样您可以轻松配置实例。过去,在将新实例连接到一组 MySQL 实例之前,您需要手动将事务以某种方式传输到加入的实例。这可能涉及创建文件副本、手动复制它们等等。使用 InnoDB 集群,您可以简单地将实例添加到集群并自动配置该实例。

同样,InnoDB 集群与 Kubernetes 紧密集成,您可以使用 AdminAPI 将它们一起用于部署。MySQL Router 可以根据 InnoDB 集群自动配置自身,这个过程称为自动引导,它消除了您手动配置路由的需要。然后,MySQL Router 将客户端应用程序透明地连接到 InnoDB 集群,为客户端连接提供路由和负载均衡。此集成还允许您使用 AdminAPI 管理针对 InnoDB 集群引导的 MySQL Router 的某些方面。InnoDB 集群状态信息包括针对该集群引导的 MySQL Router 的详细信息。操作允许您在集群级别执行操作,处理针对该集群引导的 MySQL Router 等等。

有关这些技术的更多信息,请参阅描述中链接的用户文档。除了这份用户文档,在 MySQL Shell JavaScript API 参考或 MySQL Shell Python API 参考中还有适用于所有 AdminAPI 方法的开发人员文档,可从 Connectors and APIs 获取。