OceanBase Failover 和 Load-Balancing
OceanBase Connector/J 支持三种 Failover 和 Load-Balancing 模式:sequential、loadbalance 和 replication。
sequential 模式
sequential
模式在多主机环境中支持连接 Failover。此模式不支持从属服务器的 Load-Balancing 读取。连接器将尝试按照在连接 URL 中声明的顺序连接到主机,因此第一个可用的主机将用于所有查询。 例如,连接 URL 如下:
jdbc:oceanbasedb:sequential:host1,host2,host3,host4/testobdb
当连接器尝试连接时,首先尝试连接 host1
。如果该主机不可用,则尝试连接 host2
。当主机发生故障时,连接器将尝试以相同的顺序重新连接到主机。
loadbalance 模式
loadbalance
模式在多主机环境中支持连接 Load-Balancing。此模式不支持从属服务器的 Load-Balancing 读取。连接器通过从每个连接 URL 中随机选择一个主机来对所有查询执行 Load-Balancing。由于连接随机分布在所有主机上,因此查询实现 Load-Balancing。
replication 模式
replication
模式在主从环境支持连接 Load-Balancing。该模式支持具有一个或多个主机的环境。如果在执行读取之前将连接设置为只读,则此模式支持从属服务器的 Load-Balancing 读取。连接器通过从连接 URL 中随机选择一个从服务器来执行读取查询,从而执行 Load-Balancing。
相关参数
相关参数如下表所示。
参数 |
描述 |
---|---|
autoReconnect |
如果启用了此参数,并且未使用 Failover 和 Load-Balancing 模式,则连接器在连接失败后仅尝试重新连接到主机,这称为 Basic Failover。 如果启用了此参数,并且正在使用 Failover 和 Load-Balancing 模式,则连接器会将出现故障的主机列入黑名单,并尝试连接到其他相同类型的主机。这称为 Standard Failover。 默认值: |
retriesAllDown |
当连接器正在执行 Failover 并且所有主机都关闭时,此参数用于定义连接器的最大连接尝试次数,以避免引发异常。 默认值:120。 |
failoverLoopRetries |
当连接器静默搜索有效主机时,此参数用于定义连接器的最大连接尝试次数,以避免引发异常。此参数不同于 默认值:120。 |
validConnectionTimeout |
当配置了多个主机时,连接器在所设置的时长(以秒为单位)之内,不会丢失验证连接。当此参数设置为 0 时,将不进行任何验证。 默认值:120 秒。 |
loadBalanceBlacklistTimeout |
当连接失败时,此主机将被列入此参数所定义的时长黑名单。当连接到主机时,驱动程序将尝试连接未列入黑名单的主机,只有在未找到主机的情况下,才尝试连接已列入黑名单的主机。 此黑名单在类加载器内部共享。 默认值:50 秒。 |
assureReadOnly |
如果使用 Failover 和 Load-Balancing 模式并与主机建立只读连接时启用此参数,将会话设置为只读来确保此连接处于只读模式。 默认值: |
allowMasterDownConnection |
使用 Failover 和 Load-Balancing 的 默认值: |