#透明故障转移
透明应用故障转移,即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.1:1688/yashan?failover=on&failoverType=session&failoverMethod=basic&failoverRetries=5&failoverDelay=1
主备:
jdbc:yasdb:primary://192.168.1.1:1688,192.168.1.2:1688,192.168.1.3:1688/yashan?failover=on&failoverType=session&failoverMethod=basic&failoverRetries=5&failoverDelay=1
负载均衡:
jdbc:yasdb:loadBalance://192.168.1.1:1688,192.168.1.2:1688,192.168.1.3:1688/yashan?failover=on&failoverType=session&failoverMethod=basic&failoverRetries=5&failoverDelay=1
# 新增接口
描述断点信息的DebugBreakpoint接口有如下接口:
类 | 返回类型 | 方法 | 参数 | 说明 |
---|---|---|---|---|
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则表示再尝试进行一次连接。 |