|
|
|
@ -1,19 +1,16 @@
|
|
|
|
|
package UnitTest;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.druid.filter.stat.StatFilter;
|
|
|
|
|
import com.dsideal.FengHuang.Plugin.SlaveDrudPlugin;
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
|
|
|
|
|
import com.jfinal.plugin.activerecord.Db;
|
|
|
|
|
import com.jfinal.plugin.activerecord.Record;
|
|
|
|
|
import com.jfinal.plugin.activerecord.dialect.PostgreSqlDialect;
|
|
|
|
|
import com.jfinal.plugin.druid.DruidPlugin;
|
|
|
|
|
import org.apache.shardingsphere.api.config.masterslave.LoadBalanceStrategyConfiguration;
|
|
|
|
|
import org.apache.shardingsphere.api.config.masterslave.MasterSlaveRuleConfiguration;
|
|
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
import static com.dsideal.FengHuang.Const.DbConst.MASTER;
|
|
|
|
|
import static com.dsideal.FengHuang.Const.DbConst.SLAVE;
|
|
|
|
|
|
|
|
|
|
public class TestReadWriteSplit {
|
|
|
|
|
public static DruidPlugin createDruidPlugin(String url, String username, String password, String driverClass) {
|
|
|
|
@ -42,48 +39,38 @@ public class TestReadWriteSplit {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
String MasterUrl = "jdbc:opengauss://10.10.14.61:15400/test_db";
|
|
|
|
|
String SlaveUrl = "jdbc:opengauss://10.10.14.62:15400/test_db";
|
|
|
|
|
String driverClass = "org.opengauss.Driver";
|
|
|
|
|
String masterUrl = "jdbc:postgresql://10.10.14.61:15400/test_db";
|
|
|
|
|
String slaveUrl = "jdbc:postgresql://10.10.14.62:15400/test_db?loadBalanceHosts=true&targetServerType=preferSlave";
|
|
|
|
|
String driverClass = "org.postgresql.Driver";
|
|
|
|
|
String userName = "postgres";
|
|
|
|
|
String passWord = "DsideaL147258369";
|
|
|
|
|
DruidPlugin dpMaster = createDruidPlugin(MasterUrl, userName, passWord, driverClass);
|
|
|
|
|
DruidPlugin dpSlave = createDruidPlugin(SlaveUrl, userName, passWord, driverClass);
|
|
|
|
|
|
|
|
|
|
Map<String, DruidPlugin> drudMap = new HashMap<>();
|
|
|
|
|
drudMap.put("ds_master", dpMaster);
|
|
|
|
|
drudMap.put("ds_slave", dpSlave);
|
|
|
|
|
|
|
|
|
|
//负载均衡算法
|
|
|
|
|
LoadBalanceStrategyConfiguration loadBalanceStrategyConfiguration = new LoadBalanceStrategyConfiguration("round_robin");
|
|
|
|
|
MasterSlaveRuleConfiguration masterSlaveRuleConfig =
|
|
|
|
|
new MasterSlaveRuleConfiguration(
|
|
|
|
|
"device_read_write",
|
|
|
|
|
"ds_master",
|
|
|
|
|
Lists.newArrayList("ds_slave"),
|
|
|
|
|
loadBalanceStrategyConfiguration);
|
|
|
|
|
DruidPlugin druidMaster = createDruidPlugin(masterUrl, userName, passWord, driverClass);
|
|
|
|
|
druidMaster.start();
|
|
|
|
|
DruidPlugin druidSlave = createDruidPlugin(slaveUrl, userName, passWord, driverClass);
|
|
|
|
|
druidSlave.start();
|
|
|
|
|
|
|
|
|
|
SlaveDrudPlugin drudPlugin = new SlaveDrudPlugin(masterSlaveRuleConfig, drudMap);
|
|
|
|
|
drudPlugin.start();
|
|
|
|
|
ActiveRecordPlugin arpMaster = new ActiveRecordPlugin(MASTER, druidMaster);
|
|
|
|
|
arpMaster.setDevMode(false);
|
|
|
|
|
arpMaster.setDialect(new PostgreSqlDialect());
|
|
|
|
|
arpMaster.start();
|
|
|
|
|
|
|
|
|
|
ActiveRecordPlugin arp = new ActiveRecordPlugin("aGroup", drudPlugin);
|
|
|
|
|
arp.setDevMode(false);
|
|
|
|
|
//配置数据库方言
|
|
|
|
|
arp.setDialect(new PostgreSqlDialect());
|
|
|
|
|
//启动
|
|
|
|
|
arp.start();
|
|
|
|
|
ActiveRecordPlugin arpSlave = new ActiveRecordPlugin(SLAVE, druidMaster);
|
|
|
|
|
arpSlave.setDevMode(false);
|
|
|
|
|
arpSlave.setDialect(new PostgreSqlDialect());
|
|
|
|
|
arpSlave.start();
|
|
|
|
|
|
|
|
|
|
//String sql = "truncate table test";
|
|
|
|
|
//Db.update(sql);
|
|
|
|
|
String sql = "truncate table test";
|
|
|
|
|
Db.use(MASTER).update(sql);
|
|
|
|
|
|
|
|
|
|
for (int i = 1; i <= 100; i++) {
|
|
|
|
|
String sql = "insert into test(id,txt) values(?,?)";
|
|
|
|
|
Db.update(sql, i, "黄海——" + i);
|
|
|
|
|
sql = "insert into test(id,txt) values(?,?)";
|
|
|
|
|
Db.use(MASTER).update(sql, i, "黄海——" + i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (int i = 1; i <= 100; i++) {
|
|
|
|
|
String sql = "select * from test where id=?";
|
|
|
|
|
List<Record> list = Db.find(sql, i);
|
|
|
|
|
sql = "select * from test where id=?";
|
|
|
|
|
List<Record> list = Db.use(SLAVE).find(sql, i);
|
|
|
|
|
System.out.println(list);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|