codecamp

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。

默认值:false

retriesAllDown

当连接器正在执行 Failover 并且所有主机都关闭时,此参数用于定义连接器的最大连接尝试次数,以避免引发异常。

默认值:120。

failoverLoopRetries

当连接器静默搜索有效主机时,此参数用于定义连接器的最大连接尝试次数,以避免引发异常。此参数不同于 retriesAllDown 参数,此静默搜索用于连接器的临时解决方案,例如在从属连接失败时使用主连接执行读取。

默认值:120。

validConnectionTimeout

当配置了多个主机时,连接器在所设置的时长(以秒为单位)之内,不会丢失验证连接。当此参数设置为 0 时,将不进行任何验证。

默认值:120 秒。

loadBalanceBlacklistTimeout

当连接失败时,此主机将被列入此参数所定义的时长黑名单。当连接到主机时,驱动程序将尝试连接未列入黑名单的主机,只有在未找到主机的情况下,才尝试连接已列入黑名单的主机。

此黑名单在类加载器内部共享。

默认值:50 秒。

assureReadOnly

如果使用 Failover 和 Load-Balancing 模式并与主机建立只读连接时启用此参数,将会话设置为只读来确保此连接处于只读模式。

默认值: false

allowMasterDownConnection

使用 Failover 和 Load-Balancing 的 replication 模式时,允许在主服务器关闭时创建连接。如果没有可用的主服务器,则默认连接从服务器,而 Connection.isReadOnly() 将返回 true

默认值:false


OceanBase 复用语句对象
OceanBase 批处理
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OceanBase 控制台指南

OceanBase ODC 使用指南

OceanBase Web 版 ODC

OceanBase 客户端版 ODC

OceanBase Connector/J 开发者指南

OceanBase 什么是OceanBase Connector/J

OceanBase SQL 参考(MySQL 模式)

OceanBase SQL 参考(Oracle 模式)

OceanBase 基本元素

OceanBase 数据库对象

OceanBase 函数

OceanBase 单行函数

OceanBase 返回数字的字符串函数

OceanBase 通用比较函数

OceanBase 编码解码函数

OceanBase SQL 调优指南

OceanBase 相关协议

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }