2.1 配置
2017-11-09 23:04:30
4,568
0
DragonHADataSource提供了多种配置方式,下面逐一进行讲述。
1、通过java代码方式创建
public void createDragonHADatasource() throws Exception { //创建3个DruidDataSource,分别连接主库和从库 DruidDataSource master = createDruidDataSource("write_username","write_password","jdbc:mysql://192.168.0.101:3306/dragon_ha") ; DruidDataSource slave1 = createDruidDataSource("read_username","read_password","jdbc:mysql://192.168.0.102:3306/dragon_ha") ; DruidDataSource slave2 = createDruidDataSource("read_username","read_password","jdbc:mysql://192.168.0.103:3306/dragon_ha") ; //创建DragonHADatasource,并将上面3个datasource交由DragonHADatasource管理 DragonHADatasource dragonHADatasource = new DragonHADatasource(); dragonHADatasource.addRealDatasource("master", 0, 10, master); dragonHADatasource.addRealDatasource("slave1", 10, 0, slave1); dragonHADatasource.addRealDatasource("slave2", 10, 0, slave2); //初始化 dragonHADatasource.init(); } //创建DruidDataSource private DruidDataSource createDruidDataSource(String username, String password, String url) { DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setUsername(username); druidDataSource.setPassword(password); druidDataSource.setUrl(url); druidDataSource.setInitialSize(5); druidDataSource.setMinIdle(5); druidDataSource.setMaxActive(10); druidDataSource.setTestWhileIdle(true); druidDataSource.setTestOnBorrow(false); druidDataSource.setTestOnReturn(false); druidDataSource.setValidationQuery("select 'x'"); druidDataSource.setValidationQueryTimeout(3); return druidDataSource; }
2、通过properties文件创建
在classpath下新建配置文件dragon_ha.properties(properties配置文件名称随意)
#列出由DragonHADatasource管理的数据源列表 dragon.ha.datasources=master,slave1,slave2 #配置主库数据源master dragon.ha.master.class=com.alibaba.druid.pool.DruidDataSource dragon.ha.master.readWeight=0 dragon.ha.master.writeWeight=10 dragon.ha.master.property.url=jdbc:mysql://192.168.0.101:3306/dragon_ha dragon.ha.master.property.username=write_username dragon.ha.master.property.password=write_password dragon.ha.master.property.initialSize=5 dragon.ha.master.property.minIdle=5 dragon.ha.master.property.maxActive=10 dragon.ha.master.property.testWhileIdle=true dragon.ha.master.property.testOnBorrow=false dragon.ha.master.property.testOnReturn=false dragon.ha.master.property.validationQuery=select 'x' #配置从库数据源slave1 dragon.ha.slave1.class=com.alibaba.druid.pool.DruidDataSource dragon.ha.slave1.readWeight=10 dragon.ha.slave1.writeWeight=0 dragon.ha.slave1.property.url=jdbc:mysql://192.168.0.102:3306/dragon_ha dragon.ha.slave1.property.username=read_username dragon.ha.slave1.property.password=read_password dragon.ha.slave1.property.initialSize=5 dragon.ha.slave1.property.minIdle=5 dragon.ha.slave1.property.maxActive=10 dragon.ha.slave1.property.testWhileIdle=true dragon.ha.slave1.property.testOnBorrow=false dragon.ha.slave1.property.testOnReturn=false dragon.ha.slave1.property.validationQuery=select 'x' #配置从库数据源slave2 dragon.ha.slave2.class=com.alibaba.druid.pool.DruidDataSource dragon.ha.slave2.readWeight=10 dragon.ha.slave2.writeWeight=0 dragon.ha.slave2.property.url=jdbc:mysql://192.168.0.103:3306/dragon_ha dragon.ha.slave2.property.username=read_username dragon.ha.slave2.property.password=read_password dragon.ha.slave2.property.initialSize=5 dragon.ha.slave2.property.minIdle=5 dragon.ha.slave2.property.maxActive=10 dragon.ha.slave2.property.testWhileIdle=true dragon.ha.slave2.property.testOnBorrow=false dragon.ha.slave2.property.testOnReturn=false dragon.ha.slave2.property.validationQuery=select 'x'
创建DragonHADatasource
DragonHADatasource datasource=new DragonHADatasource(); datasource.setLocalConfigFile("dragon-ha.properties"); datasource.init();
3、与spring整合
配置文件可以服用上述的的dragon-ha.properties
<bean id="dragon-ha-datasource" class="com.tianshouzhi.dragon.ha.jdbc.datasource.DragonHADatasource" init-method="init" destroy-method="close"> <property name="localConfigFile" value="dragon-ha.properties"></property> </bean>
4、从远程配置中心拉取配置
待补充
上一篇:2.0 DragonHADatasource
下一篇:2.2 强制走主库