第 1 章 通用信息
文章目录
说明
PRIMARY
代表集群拓扑中的主成员。
MySQL Router 是高可用性(HA)解决方案的构建块。它通过智能地将连接路由到 MySQL 服务器以提高性能和可靠性,从而简化了应用程序开发。
MySQL Router 8 完全支持 MySQL 5.7 和 MySQL 8 ,它取代了 MySQL Router 2.x 系列。如果您当前使用的是 MySQL Router 2.x ,我们建议将您的安装升级到 MySQL Router 8 。
1.1 MySQL InnoDB Cluster 的路由设置
MySQL Router 是 InnoDB Cluster 的一部分,是一种轻量级中间件,可在应用程序和后端 MySQL 服务器之间提供透明路由。它用于各种各样的用例,例如通过将数据库流量路由到适当的后端 MySQL 服务器来提供高可用性和可扩展性。可插拔的体系结构还使开发人员能够扩展 MySQL Router 以用于定制用例。
有关 MySQL Router 是如何成为 InnoDB Cluster 的一部分的更多详细信息,请参阅 MySQL AdminAPI 。
介绍
对于处理故障转移的客户端应用程序,他们需要了解 InnoDB Cluster 拓扑结构,并知道哪个 MySQL 实例是PRIMARY
。虽然应用程序可以实现该逻辑,但 MySQL Router 可以为您提供并处理该功能。
MySQL 使用组复制跨多个服务器复制数据库,同时在服务器发生故障时执行自动故障切换。当与 MySQL InnoDB Cluster 一起使用时,MySQL Router 充当 代理(Proxy ),以隐藏网络上的多个 MySQL 实例,并将数据请求映射到其中一个集群实例。只要有足够的在线副本并且组件之间的通信完好无损,应用程序就可以联系其中一个。MySQL Router 还通过让应用程序连接到 MySQL Router 而不是直接连接到 MySQL 来实现这一点。
在 MySQL InnoDB Cluster 中部署路由器
MySQL Router 的推荐部署模型是 InnoDB Cluster ,路由器与应用程序位于同一主机上。
配置集群后,使用 InnoDB Cluster 部署 MySQL Router 的步骤如下:
- 安装 MySQL路由器。
- 引导 InnoDB Cluster 并测试。
引导(Bootstrapping) 使用--bootstrap
和其他命令行选项自动为现有的 InnoDB Cluster 配置 MySQL 路由器。在引导过程中,Router 连接到集群,获取其元数据,并配置自己以供使用。引导是可选的。
有关更多信息,请参阅 第 3 章 部署MySQL路由器。 - 设置 MySQL Router 以自动启动。
将系统配置为在主机重新启动时自动启动 MySQL Router ,这一过程类似于 MySQL 服务器配置为自动启动的方式。有关更多详细信息,请参阅 第 5.1 节 “启动MySQL路由器” 。
例如,在创建 MySQL InnoDB Cluster 后,您可以使用以下配置 MySQL Router :
$> mysqlrouter --bootstrap localhost:3310 --directory /opt/myrouter --user snoopy
此示例将 MySQL 路由器引导到现有的 InnoDB 集群,其中:
localhost:3310 是 InnoDB 集群的成员,PRIMARY
或引导程序将重定向到集群中的PRIMARY
。
因为使用了可选的--directory
引导选项,所以本示例创建了一个自包含的安装,其中包含/opt/myrouter/
处生成的所有目录和文件。这些文件包括start.sh
, stop.sh
, log/
和一个名为mysqlrouter.conf
的全功能 MySQL 路由器配置文件。
只有名为 snoopy 的主机系统用户才能访问/opt/myrouter/*
。
有关修改引导配置过程的方法,请参阅 –bootstrap 和相关选项。例如,传入 –conf-use-sockets 启用 Unix 域套接字连接,因为默认情况下只启用 TCP/IP 连接。