预发布:2024-07-17
MySQL Router 是高可用性 (HA) 解决方案的构建块。它通过智能路由连接到 MySQL 服务器来简化应用程序开发,以提高性能和可靠性。
MySQL Router 是 InnoDB Cluster 的一部分,是一种轻量级中间件,提供应用程序和后端 MySQL 服务器之间的透明路由。它用于各种用例,例如通过将数据库流量路由到适当的后端 MySQL 服务器来提供高可用性和可扩展性。可插拔架构还使开发人员能够扩展 MySQL Router 以满足自定义用例。
MySQL 组复制将数据库复制到多个服务器,同时在服务器发生故障时执行自动故障转移。与 InnoDB Cluster 一起使用时,MySQL Router 充当代理,隐藏网络上的多个 MySQL 实例,并将数据请求映射到群集实例之一。只要有足够的在线副本并且组件之间通信完好,应用程序就能联系其中一个。MySQL Router 还通过让应用程序连接到 MySQL Router 而不是直接连接到 MySQL 来实现这一点。
有关 MySQL Router 安装的更多信息,请参见 安装 MySQL Router。
有关 MySQL Router 部署的更多信息,请参见 部署 MySQL Router。
有关 MySQL Router 配置的更多信息,请参见 配置 MySQL Router。
设置 InnoDB Cluster 并运行 MySQL Router 后,可以使用 MySQL Shell 控制台测试 InnoDB Cluster 和 MySQL Router 设置。
默认情况下,可以通过连接到以下方式访问 InnoDB Cluster
-
经典 MySQL 协议
读写连接:instance-address:port 6446
只读连接:instance-address:port 6447
-
X 协议
读写连接:instance-address:port 6448
只读连接:instance-address:port 6449
不要直接连接到 MySQL 服务器实例之一,而是通过 MySQL Router 连接。
-
发出以下连接命令,其中用户是
demo-user
,实例的地址是demo-instance
,并且正在使用经典 MySQL 协议shell.connect ('demo-user@demo-instance:6446')
提供 root 密码以连接到 InnoDB Cluster。
-
通过创建变量
cluster
并为其分配dba.getCluster()
JavaScript 方法的值来检查 InnoDB Cluster 的状态cluster = dba.getCluster()
cluster.status()
-
切换到 SQL 模式
\sql
-
通过发出以下命令查询实例运行的端口
SELECT @@port; +--------+ | @@port | +--------+ | 3310 | +--------+ 1 row in set (0.0007 sec)
在本例中,InnoDB Cluster 运行在端口 3310 上,因此 MySQL Router 已正确配置并成功运行。