创建会话时,您可以提供多个 MySQL 路由器或服务器端点(作为主机和可选端口或 Unix 套接字)。您指定一个类似 URI 的字符串,其中包含多个主机、端口和可选的优先级。这使连接器能够在任何端点不可用时执行自动连接故障转移选择。当有多个端点可用时,选择哪个服务器用于会话取决于您是否指定优先级。如果为每个端点指定了优先级,则使用具有最高优先级的可用端点。如果您未指定优先级,则会使用随机可用端点。本节介绍如何在类似 URI 的字符串中配置多个端点。 使用类似 URI 的连接字符串进行连接。
您在类似 URI 的字符串中提供的用户和密码适用于所有可能的端点,因此每个端点上必须存在相同的 MySQL 帐户。
要指定没有优先级的多个主机,URI-like 连接字符串的格式为:
user:password@[(address=[host]:[port]), (address=[host]:[port]) ..]
端点集合被列为主机、端口或主机和端口。在没有优先级的情况下设置多个端点时,将为连接选择任何可用的端点。
要指定端点的优先级,类似 URI 的连接字符串的格式为:
user:password@[(address=[host]:[port], priority=value), (address=[host]:[port], priority=value) ..]
这会设置具有显式优先级的端点,例如,在另一个端点不可用时将连接故障转移到特定端点。指定的优先级范围可以从0
(最低优先级)到
100
(最高优先级)。当两个端点共享相同的优先级时,将随机选择其中一个。
例如,假设您使用类似 URI 的字符串进行连接,例如:
mysqlx://user:password@[(address=example1.com:33060,priority=99),(address=example2.com:33060,priority=100)]
在这种情况下,有两个可能的端点,并且
example2:33060
具有更高的优先级。当两个端点都可用时,连接器连接到
example2.com:33060
。如果
example2.com:33060
不可用,连接器将连接到example1:33060
。