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


MySQL Connector/J 开发者指南  /  ...  /  高可用性和集群

6.3.12 高可用性和集群

  • autoReconnect

    驱动程序是否应尝试重新建立失效和/或断开的连接?如果启用,驱动程序将针对在失效或断开的连接(属于当前事务)上发出的查询抛出异常,但将在新事务中对连接发出的下一个查询之前尝试重新连接。不建议使用此功能,因为它在应用程序未正确处理 SQLExceptions 时会对会话状态和数据一致性产生副作用,并且仅设计用于无法配置应用程序以正确处理由失效和失效连接导致的 SQLExceptions 的情况。或者,作为最后的选择,请调查将 MySQL 服务器变量 'wait_timeout' 设置为较高的值,而不是默认值 8 小时。

    默认值 false
    自版本 1.1
  • autoReconnectForPools

    使用适合连接池的重新连接策略?

    默认值 false
    自版本 3.1.3
  • failOverReadOnly

    在“autoReconnect”模式下进行故障转移时,连接是否应设置为“只读”?

    默认值 true
    自版本 3.0.12
  • maxReconnects

    如果“autoReconnect”为“true”,则尝试重新连接的最大次数。

    默认值 3
    自版本 1.1
  • reconnectAtTxEnd

    如果“autoReconnect”设置为“true”,驱动程序是否应尝试在每个事务结束时重新连接?

    默认值 false
    自版本 3.0.10
  • retriesAllDown

    使用负载均衡或故障转移时,驱动程序应循环遍历可用主机并尝试连接的次数。在循环之间,如果没有可用服务器,驱动程序将暂停 250 毫秒。

    默认值 120
    自版本 5.1.6
  • initialTimeout

    如果启用“autoReconnect”,则重新连接尝试之间的初始等待时间(以秒为单位,默认为“2”)。

    默认值 2
    自版本 1.1
  • queriesBeforeRetrySource

    使用多主机故障转移时,故障转移后在回退到主主机之前要发出的查询数。首先满足哪个条件,“queriesBeforeRetrySource”或“secondsBeforeRetrySource”将导致尝试重新连接到主主机。将两个属性都设置为“0”将禁用在事务边界处自动回退到主主机。

    默认值 50
    自版本 3.0.2
  • secondsBeforeRetrySource

    故障转移后,驱动程序应等待多长时间(以秒为单位)才能尝试重新连接到主主机?首先满足哪个条件,“queriesBeforeRetrySource”或“secondsBeforeRetrySource”将导致尝试重新连接到源主机。将两个属性都设置为“0”将禁用在事务边界处自动回退到主主机。

    默认值 30
    自版本 3.0.2
  • allowReplicaDownConnections

    默认情况下,当配置的副本主机在初始连接时都不可用时,复制感知连接将无法连接。将此属性设置为“true”允许建立初始连接。当切换到副本时,例如通过将复制连接设置为只读状态,它不会阻止故障。“readFromSourceWhenNoReplicas”属性应用于此目的。

    默认值 false
    自版本 6.0.2
  • allowSourceDownConnections

    默认情况下,当配置的源主机在初始连接时都不可用时,复制感知连接将无法连接。将此属性设置为“true”允许通过以只读状态故障转移到副本服务器来建立初始连接。当切换回源主机时,例如通过将复制连接设置为读/写状态,它不会阻止后续故障。

    默认值 false
    自版本 5.1.27
  • ha.enableJMX

    启用基于 JMX 的负载均衡连接组管理,包括从负载均衡池中实时添加/删除主机。启用基于 JMX 的复制连接组管理,包括实时副本提升、添加新副本以及从负载均衡的源和副本连接池中删除源或副本主机。

    默认值 false
    自版本 5.1.27
  • loadBalanceHostRemovalGracePeriod

    设置等待从负载均衡连接中删除的主机的宽限期,以便在该主机当前处于活动状态时释放它。

    默认值 15000
    自版本 6.0.3
  • readFromSourceWhenNoReplicas

    复制感知连接通过在读/写状态下使用源主机并在只读状态下使用副本主机来分配负载。如果在将连接设置为只读状态时,没有可用的副本主机,则会抛出“SQLException”。将此属性设置为“true”允许在切换时没有可用的副本主机时故障转移到源主机,同时将连接状态设置为只读。

    默认值 false
    自版本 6.0.2
  • selfDestructOnPingMaxOperations

    如果设置为非零值,则在调用“com.mysql.cj.jdbc.JdbcConnection.ping()”或“java.sql.Connection.isValid(int)”时,如果连接发送到服务器的命令计数超过此值,驱动程序将报告关闭连接并报告故障。

    默认值 0
    自版本 5.1.6
  • selfDestructOnPingSecondsLifetime

    如果设置为非零值,则在调用“com.mysql.cj.jdbc.JdbcConnection.ping()”或“java.sql.Connection.isValid(int)”时,如果连接的生存期超过此值(以毫秒为单位),驱动程序将关闭连接并报告故障。

    默认值 0
    自版本 5.1.6
  • ha.loadBalanceStrategy

    如果使用负载均衡连接连接到 MySQL 集群配置中的 SQL 服务器(使用 URL 前缀“jdbc:mysql:loadbalance://”),驱动程序应使用哪种负载均衡算法:(1)“random”- 驱动程序将为每个请求选择一个随机主机。这往往比轮询效果更好,因为随机性会在一定程度上考虑在请求响应时间不同时分散负载,而轮询有时会导致工作负载中不同响应时间导致节点过载。(2)“bestResponseTime”- 驱动程序会将请求路由到对先前事务具有最佳响应时间的主机。(3)“serverAffinity”- 驱动程序最初尝试强制执行服务器关联性,同时仍然尊重并受益于负载均衡实现的容错方面。服务器关联性排序列表使用属性“serverAffinityOrder”提供。如果关联性列表中列出的服务器均未响应,则驱动程序会参考“random”策略继续选择下一个服务器。

    默认值 random
    自版本 5.0.6
  • loadBalanceAutoCommitStatementRegex

    当为自动提交语句启用负载均衡时(通过“loadBalanceAutoCommitStatementThreshold”),只有当SQL与正则表达式匹配时,语句计数器才会递增。默认情况下,发出的每个语句都匹配。

    自版本 5.1.15
  • loadBalanceAutoCommitStatementThreshold

    启用自动提交时,在触发负载均衡以重新平衡之前应执行的语句数。“0”的默认值会导致负载均衡连接仅在遇到异常时重新平衡,或者禁用自动提交并显式提交或回滚事务。

    默认值 0
    自版本 5.1.15
  • loadBalanceBlocklistTimeout

    检查不可用服务器之间的时间(以毫秒为单位),通过控制服务器在全局阻止列表中的存活时间。

    默认值 0
    自版本 5.1.0
  • loadBalanceConnectionGroup

    类加载器中负载均衡连接的逻辑组,用于独立管理不同的组。如果未指定,则禁用负载均衡连接的实时管理。

    自版本 5.1.13
  • loadBalanceExceptionChecker

    自定义异常检查器的完全限定类名。该类必须实现“com.mysql.cj.jdbc.ha.LoadBalanceExceptionChecker”接口,并用于检查“SQLException”异常并确定它们是否应触发故障转移到负载均衡部署中的另一台主机。

    默认值 com.mysql.cj.jdbc.ha.StandardLoadBalanceExceptionChecker
    自版本 5.1.13
  • loadBalancePingTimeout

    使用负载均衡连接时,等待每个负载均衡物理连接的ping响应的时间(以毫秒为单位)。

    默认值 0
    自版本 5.1.13
  • loadBalanceSQLExceptionSubclassFailover

    默认负载均衡异常检查器使用的类/接口的逗号分隔列表,用于确定给定的“SQLException”是否应触发故障转移。使用抛出的“SQLException”,使用“Class.isInstance(SQLException)”进行比较。

    自版本 5.1.13
  • loadBalanceSQLStateFailover

    默认负载均衡异常检查器使用的“SQLState”代码的逗号分隔列表,用于确定给定的“SQLException”是否应触发故障转移。评估给定“SQLException”的“SQLState”,以确定它是否以逗号分隔列表中指定的任何值开头。

    自版本 5.1.13
  • loadBalanceValidateConnectionOnSwapServer

    在提交/回滚时交换到新的物理连接时,负载均衡连接是否应显式检查连接是否处于活动状态?

    默认值 false
    自版本 5.1.13
  • pinGlobalTxToPhysicalConnection

    使用XA连接时,驱动程序是否应确保对给定XID的操作始终路由到同一物理连接?这允许“XAConnection”在调用“XA END”之后支持“XA START…JOIN”。

    默认值 false
    自版本 5.0.1
  • replicationConnectionGroup

    类加载器中复制连接的逻辑组,用于独立管理不同的组。如果未指定,则禁用复制连接的实时管理。

    自版本 8.0.7
  • resourceId

    全局唯一名称,用于标识此数据源或连接所连接的资源,当驱动程序无法根据URL中使用的主机名确定此值时,用于“XAResource.isSameRM()”。

    自版本 5.0.1
  • serverAffinityOrder

    一个逗号分隔列表,其中包含要在负载均衡“serverAffinity”策略中使用的主机/端口对。仅使用此URL主要主机部分中枚举的主机子集,并且它们在大小写和类型上必须相同,即,不能在一个位置使用IP地址,而在另一个位置使用相应的主机名。

    自版本 8.0.8