#透明故障转移

透明应用故障转移,即TAF全称Transparent Application Failover,驱动的透明应用故障转移功能,使你能够在连接的数据库实例发生故障时自动重新连接到数据库。新的数据库连接,虽然是由不同的节点创建的,但与原来的连接是相同的。在重新连接过程中,之前的活动事务将会被回滚,并且当前的语句会被终止。

# 新增JDBC URL配置参数

YashanDB JDBC URL新增有如下参数:

参数 类型 描述
failover string 该参数表示TAF是否开启,当故障发生时,TAF会链接到已配置的其他数据库节点,有ON和OFF两个可选值,默认OFF。ON表示开启TAF,OFF表示关闭。(当前不支持OFF状态下自动重连当前数据库节点。)
failoverType string TAF的类型,NONE,SESSION,SELECT三种类型,目前不支持SELECT,默认NONE,NONE表示关闭TAF。
failoverMethod string TAF模式,有BASIC和PRECONNECT两个可选值,目前只支持BASIC,默认BASIC。
failoverRetries int 重试次数,默认5次。
failoverDelay int 重试间隔时间,单位秒,默认1秒。

单机:

jdbc:yasdb://192.168.1.2:1688/yashan?failover=on&failoverType=session&failoverMethod=basic&failoverRetries=5&failoverDelay=1

主备:

jdbc:yasdb:primary://192.168.1.2:1688,192.168.1.3:1688,192.168.1.4:1688/yashan?poolTimeout=180&failover=on&failoverType=session&failoverMethod=basic&failoverRetries=5&failoverDelay=1

负载均衡:

jdbc:yasdb:loadBalance://192.168.1.2:1688,192.168.1.3:1688,192.168.1.4:1688/yashan?failover=on&failoverType=session&failoverMethod=basic&failoverRetries=5&failoverDelay=1

# 新增接口

描述TAF功能的接口有如下接口:

返回类型 方法 参数 说明
YasConnection void registerTAFCallback(YasFailover yasFailover, Object ctxt) [1] yasFailover: 用户注册实callbackFn方法的实体类
[2] ctxt: 用户想要保存的任何对象
注册TAF回调函数的实现类,如果注册了回调函数,failoverRetries和failoverDelay参数不生效,TAF链接失败时不会尝试进行重连。
YasFailover void callbackFn (Connection conn, Object ctxt, int type, int event) [1] conn: 当前的链接
[2] ctxt: 用户想要保存的任何对象
[3] type: 故障转移类型
[4] event: event
TAF的回调函数,该方法由应用程序继承实现。目前只支持FO_BEGIN、FO_ERROR、FO_RETRY、FO_END,在FO_ERROR事件中如果返回FO_RETRY则表示再尝试进行一次连接。
pdf-btn 下载文档
copy-btn 复制链接