本文整理汇总了Java中com.taobao.tddl.group.jdbc.DataSourceFetcher类的典型用法代码示例。如果您正苦于以下问题:Java DataSourceFetcher类的具体用法?Java DataSourceFetcher怎么用?Java DataSourceFetcher使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DataSourceFetcher类属于com.taobao.tddl.group.jdbc包,在下文中一共展示了DataSourceFetcher类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: buildDataSourceWrapperSequential
import com.taobao.tddl.group.jdbc.DataSourceFetcher; //导入依赖的package包/类
public static List<DataSourceWrapper> buildDataSourceWrapperSequential(String dsWeightCommaStr,
final DataSourceFetcher fetcher) {
final String[] dsWeightArray = dsWeightCommaStr.split(","); // 逗号分隔:db0:rwp1q1i0,
// db1:rwp0q0i1
List<DataSourceWrapper> dss = new ArrayList<DataSourceWrapper>(dsWeightArray.length);
for (int i = 0; i < dsWeightArray.length; i++) {
final int j = i;
final String[] dsAndWeight = dsWeightArray[j].split(":"); // 冒号分隔:db0:rwp1q1i0
final String dsKey = dsAndWeight[0].trim();
String weightStr = dsAndWeight.length == 2 ? dsAndWeight[1] : null;
try {
dss.add(getDataSourceWrapper(dsKey, weightStr, j, fetcher));
} catch (Exception e) {
throw new RuntimeException("init ds error! atom key is " + dsKey, e);
}
}
return dss;
}
示例2: buildDataSourceWrapper
import com.taobao.tddl.group.jdbc.DataSourceFetcher; //导入依赖的package包/类
/**
* @param dsWeightCommaStr : 例如 db0:rwp1q1i0, db1:rwp0q0i1
*/
public static List<DataSourceWrapper> buildDataSourceWrapper(String dsWeightCommaStr, DataSourceFetcher fetcher) {
String[] dsWeightArray = dsWeightCommaStr.split(","); // 逗号分隔:db0:rwp1q1i0,
// db1:rwp0q0i1
List<DataSourceWrapper> dss = new ArrayList<DataSourceWrapper>(dsWeightArray.length);
for (int i = 0; i < dsWeightArray.length; i++) {
String[] dsAndWeight = dsWeightArray[i].split(":"); // 冒号分隔:db0:rwp1q1i0
String dsKey = dsAndWeight[0].trim();
String weightStr = dsAndWeight.length == 2 ? dsAndWeight[1] : null;
DataSourceWrapper dsw = getDataSourceWrapper(dsKey, weightStr, i, fetcher);
dss.add(dsw);
}
return dss;
}
示例3: getDataSourceWrapper
import com.taobao.tddl.group.jdbc.DataSourceFetcher; //导入依赖的package包/类
public static DataSourceWrapper getDataSourceWrapper(String dsKey, String weightStr, int index,
DataSourceFetcher fetcher) {
// 如果多个group复用一个真实dataSource,会造成所有group引用
// 这个dataSource的配置 会以最后一个dataSource的配置为准
DataSource dataSource = fetcher.getDataSource(dsKey);
DBType fetcherDbType = fetcher.getDataSourceDBType(dsKey);
// dbType = fetcherDbType == null ? dbType :
// fetcherDbType;
DataSourceWrapper dsw = new DataSourceWrapper(dsKey, weightStr, dataSource, fetcherDbType, index);
return dsw;
}
示例4: buildDataSourceWrapperParallel
import com.taobao.tddl.group.jdbc.DataSourceFetcher; //导入依赖的package包/类
public static List<DataSourceWrapper> buildDataSourceWrapperParallel(String dsWeightCommaStr,
final DataSourceFetcher fetcher) {
final String[] dsWeightArray = dsWeightCommaStr.split(","); // 逗号分隔:db0:rwp1q1i0,
// db1:rwp0q0i1
List<DataSourceWrapper> dss = new ArrayList<DataSourceWrapper>(dsWeightArray.length);
ThreadPoolExecutor executor = new ThreadPoolExecutor(2,
2,
5,
TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>(),
new NamedThreadFactory("TDDL_GROUP_INIT"),
new ThreadPoolExecutor.CallerRunsPolicy());
Map<String, Future<DataSourceWrapper>> m = new HashMap<String, Future<DataSourceWrapper>>();
for (int i = 0; i < dsWeightArray.length; i++) {
final int j = i;
final String[] dsAndWeight = dsWeightArray[j].split(":"); // 冒号分隔:db0:rwp1q1i0
final String dsKey = dsAndWeight[0].trim();
Future<DataSourceWrapper> f = executor.submit(new Callable<DataSourceWrapper>() {
@Override
public DataSourceWrapper call() throws Exception {
String weightStr = dsAndWeight.length == 2 ? dsAndWeight[1] : null;
return getDataSourceWrapper(dsKey, weightStr, j, fetcher);
}
});
m.put(dsKey, f);
}
for (Map.Entry<String, Future<DataSourceWrapper>> en : m.entrySet()) {
try {
dss.add(en.getValue().get());
} catch (Exception e) {
throw new RuntimeException("init ds error! atom key is " + en.getKey(), e);
}
}
executor.shutdown();
return dss;
}