第21章 InnoDB Cluster
文章目录
- 第21章 InnoDB Cluster
本章介绍 MySQL InnoDB Cluster ,它整合了 MySQL 多项技术,使您能够部署和管理 MySQL 的完整集成的高可用解决方案。本内容是 InnoDB Cluster 的高级概述,有关完整文档,请参阅 MySQL InnoDB Cluster。
重要提示
InnoDB Cluster 不支持 MySQL NDB Cluster。有关 MySQL NDB Cluster 的更多信息,请参阅 第 23 章 MySQL NDB Cluster 8.0 和 第 23.2.6 节 “MySQL Server Using InnoDB Comparison NDB Cluster” 。
InnoDB Cluster 至少由三个 MySQL Server 实例组成,它提供了高可用性和扩展功能。InnoDB Cluster 使用以下 MySQL 技术:
- MySQL Shell ,它是 MySQL 的高级客户端和代码编辑器。
- MySQL Server 和 组复制,这使一组 MySQL 实例能够提供高可用性。InnoDB Cluster 提供了一种替代的、易于使用的编程方式来处理组复制。
- MySQL Router ,一个轻量级中间件,在应用程序和 InnoDB Cluster 之间提供透明路由。
下图概述了这些技术如何协同工作:
图 21.1 InnoDB Cluster 概览
基于 MySQL Group Replication(MySQL 组复制) 构建,提供了 自动成员管理 、容错、自动故障切换 等功能。InnoDB Cluster 通常以单主模式运行,具有一个主实例(读写)和多个辅助实例(只读)。高级用户还可以利用多主模式,其中所有实例都是主模式。您甚至可以在 InnoDB Cluster 在线时更改集群的拓扑结构,以确保尽可能高的可用性。
您可以使用作为 MySQL Shell 的一部分提供的 AdminAPI 来处理InnoDB Cluster 。AdminAPI 在 JavaScript 和 Python 中可用,非常适合 MySQL 的脚本编写和自动化部署,以实现高可用性和可扩展性。通过使用 MySQL Shell 的 AdminAPI ,您可以避免手动配置许多实例。相反,AdminAPI 为 MySQL 实例集提供了一个有效的现代接口,使您能够从一个中心工具配置、管理和监视部署。
要开始使用 InnoDB Cluster ,您需要下载并安装 MySQL Shell 。您需要一些安装了 MySQL Server 实例的主机,也可以安装 MySQL Router 。
InnoDB Cluster 支持 MySQL Clone ,这使您能够简单地配置实例。在过去,要在加入一组 MySQL 实例之前提供一个新实例,您需要以某种方式手动将事务转移到加入实例。这可能涉及创建文件副本、手动复制文件等等。使用 InnoDB Cluster ,您可以简单地向集群添加一个实例,并自动进行配置。
类似地,InnoDB Cluster 与 MySQL Router 紧密集成,您可以使用 AdminAPI 与它们一起工作。MySQL Router 可以基于 InnoDB Cluster 自动配置自身,这一过程称为 引导(Bootstrapping) ,无需手动配置路由。MySQL路由器然后将客户端应用程序透明地连接到 InnoDB Cluster ,为客户端连接提供路由和负载平衡。这种集成还使您能够使用 AdminAPI 管理针对 InnoDB Cluster 引导的 MySQL Router 的某些方面。InnoDB Cluster 状态信息包括根据集群所引导的 MySQL Router 的详细信息。操作使您能够在集群级别创建 MySQL Router 用户,使用根据集群所引导的 MySQL Router ,等等。
有关这些技术的更多信息,请参阅描述中链接的用户文档。除此用户文档外,《MySQL Shell JavaScript API 参考》或《MySQL Shell Python API 参考》中还有所有 AdminAPI 方法的开发人员文档,可从 Connectors and APIs 获得。