MySQL 路由器 8.4  /  一般信息  /  为 MySQL InnoDB 集群进行路由

1.1 为 MySQL InnoDB 集群进行路由

MySQL 路由器是 InnoDB 集群的一部分,是一个轻量级的中间件,它在您的应用程序和后端 MySQL 服务器之间提供透明的路由。它用于各种用例,例如通过将数据库流量路由到适当的后端 MySQL 服务器来提供高可用性和可扩展性。可插拔架构还使开发人员能够扩展 MySQL 路由器以用于自定义用例。

有关路由器作为 InnoDB 集群一部分的更多详细信息,请参阅 MySQL AdminAPI

介绍

对于客户端应用程序来说,要处理故障转移,它们需要了解 InnoDB 集群拓扑,并知道哪个 MySQL 实例是主实例。虽然应用程序可以实现该逻辑,但 MySQL 路由器可以为您提供并处理此功能。

MySQL 使用组复制在多个服务器上复制数据库,同时在服务器故障时执行自动故障转移。当与 MySQL InnoDB 集群一起使用时,MySQL 路由器充当代理,隐藏您网络上的多个 MySQL 实例,并将数据请求映射到集群实例之一。只要有足够多的在线副本,并且组件之间的通信保持完整,应用程序将能够联系其中一个副本。MySQL 路由器还通过让应用程序连接到 MySQL 路由器而不是直接连接到 MySQL 来实现这一点。

使用 MySQL InnoDB 集群部署路由器

MySQL 路由器的推荐部署模型是与 InnoDB 集群一起使用,路由器与应用程序位于同一主机上。

在配置集群后,使用 MySQL InnoDB 集群部署 MySQL 路由器的步骤如下:

  1. 安装 MySQL 路由器。

  2. 引导 InnoDB 集群,并进行测试。

    引导会自动使用 --bootstrap 和其他命令行选项为现有 InnoDB 集群配置 MySQL 路由器。在引导过程中,路由器会连接到集群,获取其元数据,并配置自身以供使用。引导是可选的。

    有关更多信息,请参阅 第 3 章,部署 MySQL 路由器

  3. 设置 MySQL 路由器以自动启动。

    将您的系统配置为在主机重新启动时自动启动 MySQL 路由器,这类似于 MySQL 服务器配置为自动启动的方式。有关更多详细信息,请参阅 第 5.1 节,“启动 MySQL 路由器”

例如,在创建 MySQL InnoDB 集群后,您可以使用以下命令配置 MySQL 路由器:

$> mysqlrouter --bootstrap localhost:3310 --directory /opt/myrouter --user snoopy

此示例将 MySQL 路由器引导到现有 InnoDB 集群,其中

  • localhost:3310 是 InnoDB 集群的成员,并且主实例或引导程序将重定向到集群中的主实例。

  • 由于使用了可选的 --directory 引导选项,因此此示例在 /opt/myrouter/ 中创建了一个自包含的安装,其中包含所有生成的目录和文件。这些文件包括 start.shstop.shlog/ 以及一个名为 mysqlrouter.conf 的功能齐全的 MySQL 路由器配置文件。

  • 只有名为 snoopy 的主机的系统用户才能访问 /opt/myrouter/*

请参阅 --bootstrap 和相关选项,以了解如何修改引导配置过程。例如,传递 --conf-use-sockets 可以启用 Unix 域套接字连接,因为默认情况下仅启用了 TCP/IP 连接。