文档主页
X DevAPI 用户指南
下载此手册
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


X DevAPI 用户指南  /  ...  /  连接到多个主机之一和连接故障转移

2.2.2 连接到多个主机之一和连接故障转移

在创建会话时,您可以提供多个 MySQL 路由器或服务器端点(作为主机和可选端口,或 Unix 套接字)。您指定一个包含多个主机、端口和可选优先级的 URI 风格字符串。这使连接器能够在任何端点不可用时执行自动连接故障转移选择。当多个端点可用时,用于会话的服务器选择取决于您是否指定优先级。如果为每个端点指定了优先级,则使用优先级最高的可用端点。如果您没有指定优先级,则会随机选择一个可用端点。本节介绍如何在 URI 风格字符串中配置多个端点。有关 URI 风格连接字符串的更多信息,请参见 使用 URI 风格连接字符串连接.

注意

您在 URI 风格字符串中提供的用户和密码适用于所有可能的端点,因此每个端点都必须存在相同的 MySQL 帐户。

要指定多个主机而没有优先级,URI 风格连接字符串的格式为

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