JDBC分发器的使用

JDBC分发器作为JDBC驱动的一部分,要使用它,首先将JDBC驱动的配置参数

Usedispatch设置为true,即启动分发功能,默认情况下,该参数为false。设置该参数的方式有如下两种方式:

方式一:在JDBC驱动的配置文件oscarconfig.properties中指定usedispatch=true

方式二:在JDBC驱动的连接url中指定usedispatch=true

通过配置参数hostLoadRate,可以设置主机的负载率,默认情况下,该参数为0,范围0-100.

其次,不同应用对于读写操作的一致性和性能的需求是不同的,因此在驱动分发语句时需要增加一些配置策略,JDBC增加了两个参数配置分发的策略。

参数transactionDispatchStrategy,代表显式事务内语句的分发策略,默认值为2。共有1,2两种策略。1代表事务中的所有语句都分发到主机。 2代表事务开始的读语句可以分发到备机, 一旦出现写语句,后面的语句都分发到主机。

参数useAsynchronous,代表读操作是否可以分发到非强制同步备机,默认值true表示可以分发,强制同步备机是指该备机是同步节点,并且配置了数据库参数ENABLE_HA_SLAVE_SYNC_REDO为TURE。 主机必须在收到所有强制同步备机都重做完了某事务的修改后,才能够提交此事务。强制同步备机能够保证备节点数据的强实时性,但会影响主机上事务的提交性能。(详见配置参数文件里ENABLE_HA_SLAVE_SYNC_REDO的说明)。 非强制同步备机既包括ENABLE_HA_SLAVE_SYNC_REDO为FALSE的同步节点,也包括异步节点。

参数useSlaveSyncRead,代表读备机时是否等待备机数据同步完成,默认值是false。如果是true的话,驱动会发送lsn到备机,备机等待数据同步完成才会返回结果,如果对性能有要求,不要开启这个参数。

参数useSlaveSyncReadGlobal,默认值false。设置useSlaveSyncRead=ture后此参数才有作用。useSlaveSyncReadGlobal为false,使用线程级lsn仅保证可以查询到同一个线程之前的更新事务所做的修改。 useSlaveSyncReadGlobal为true,使用全局lsn保证可以查询到所有线程之前的更新事务所做的修改。

上述中的几个参数设置方式,同Usedispatch的设置方式。