文档主页
MySQL Connector/J 开发者指南
相关文档 下载本手册
PDF (US Ltr) - 1.2Mb
PDF (A4) - 1.2Mb


MySQL Connector/J 开发者指南  /  多主机连接  /  使用 X DevAPI 配置连接的服务器故障转移

9.2 使用 X DevAPI 配置连接的服务器故障转移

使用 X 协议时,Connector/J 支持用于建立会话的客户端故障转移功能。如果在连接 URL 中指定了多个主机,当 Connector/J 无法连接到列出的主机时,它会尝试连接到另一个主机。这是一个用于配置客户端故障转移的 X DevAPI URL 示例

mysqlx://sandy:mypassword@[host1:33060,host2:33061]/test

配置客户端故障转移后,当建立连接失败时,Connector/J 会继续尝试连接到主机列表中的主机。尝试连接主机的顺序如下:

  • 对于在连接 URL 中为每个主机设置了 priority 属性的连接, 将根据为主机设置的优先级尝试连接,优先级由 0 到 100 之间的任何数字指定,数字越大表示连接的优先级越高。例如:

    mysqlx://sandy:mypassword@[(address=host1:33060,priority=2),(address=host2:33061,priority=1)]/test

    在此示例中,创建新会话时,始终会在 host2 之前尝试 host1

    应为所有主机设置优先级,或不为任何主机设置优先级。

  • 对于在连接 URL 中没有为每个主机设置 priority 属性的连接, 将按随机顺序逐个尝试连接主机。

请注意,X DevAPI 的服务器故障转移功能仅允许在 Connector/J 尝试建立连接时进行故障转移,而在连接已经建立后的操作期间不允许进行故障转移。

使用 X DevAPI 进行连接池。  当使用 X DevAPI 进行连接池时,Connector/J 会跟踪它无法连接到的任何主机,并在故障发生后的短时间内,在创建或检索 Session 时避免连接到该主机。但是,如果已经尝试了所有其他主机,则会立即重试那些被排除的主机。一旦尝试了所有主机并且无法建立任何连接,Connector/J 将抛出 com.mysql.cj.exceptions.CJCommunicationsException 并返回消息 无法连接到任何目标主机

使用带有 DNS SRV 的 X DevAPI 配置服务器故障转移

有关详细信息,请参阅第 6.14 节 “对 DNS SRV 记录的支持”