This commit is contained in:
zyyang 2020-12-21 15:34:47 +08:00
parent efa1709fdf
commit 8877907e70
11 changed files with 110 additions and 23 deletions

View File

@ -82,12 +82,27 @@ public class ConnectionPoolDemo {
init(dataSource); init(dataSource);
ExecutorService executor = Executors.newFixedThreadPool(threadCount); try {
while (true) { Connection connection = dataSource.getConnection();
executor.execute(new InsertTask(dataSource, dbName, tableSize, batchSize)); Statement statement = connection.createStatement();
if (sleep > 0) String sql = "insert into " + dbName + ".t_1 values('2020-01-01 00:00:00.000',12.12,111)";
TimeUnit.MILLISECONDS.sleep(sleep); int affectRows = statement.executeUpdate(sql);
System.out.println("affectRows >>> " + affectRows);
affectRows = statement.executeUpdate(sql);
System.out.println("affectRows >>> " + affectRows);
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
} }
// ExecutorService executor = Executors.newFixedThreadPool(threadCount);
// while (true) {
// executor.execute(new InsertTask(dataSource, dbName, tableSize, batchSize));
// if (sleep > 0)
// TimeUnit.MILLISECONDS.sleep(sleep);
// }
} }
private static void init(DataSource dataSource) { private static void init(DataSource dataSource) {

View File

@ -57,6 +57,13 @@
<version>${spring.version}</version> <version>${spring.version}</version>
</dependency> </dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
<!-- HikariCP --> <!-- HikariCP -->
<dependency> <dependency>

View File

@ -8,10 +8,11 @@ import com.taosdata.taosdemo.service.DatabaseService;
import com.taosdata.taosdemo.service.InsertTask; import com.taosdata.taosdemo.service.InsertTask;
import com.taosdata.taosdemo.service.SuperTableService; import com.taosdata.taosdemo.service.SuperTableService;
import com.taosdata.taosdemo.service.data.SuperTableMetaGenerator; import com.taosdata.taosdemo.service.data.SuperTableMetaGenerator;
import com.taosdata.taosdemo.utils.JdbcTaosdemoConfig; import com.taosdata.taosdemo.components.JdbcTaosdemoConfig;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.io.IOException;
import java.time.Duration; import java.time.Duration;
import java.time.Instant; import java.time.Instant;
import java.util.*; import java.util.*;
@ -23,8 +24,7 @@ import java.util.stream.IntStream;
public class TaosDemoApplication { public class TaosDemoApplication {
private static Logger logger = Logger.getLogger(TaosDemoApplication.class); private static Logger logger = Logger.getLogger(TaosDemoApplication.class);
public static void main(String[] args) { public static void main(String[] args) throws IOException {
// 读配置参数 // 读配置参数
JdbcTaosdemoConfig config = new JdbcTaosdemoConfig(args); JdbcTaosdemoConfig config = new JdbcTaosdemoConfig(args);

View File

@ -5,24 +5,45 @@ import com.zaxxer.hikari.HikariDataSource;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
@Component @Component
public class DataSourceFactory { public class DataSourceFactory {
private static DataSource instance; private static DataSource instance;
public static DataSource getInstance(String host, int port, String user, String password) { public static DataSource getInstance(String host, int port, String user, String password) throws IOException {
if (instance == null) { if (instance == null) {
synchronized (DataSourceFactory.class) { synchronized (DataSourceFactory.class) {
if (instance == null) { if (instance == null) {
InputStream is = DataSourceFactory.class.getClassLoader().getResourceAsStream("application.properties");
Properties properties = new Properties();
properties.load(is);
HikariConfig config = new HikariConfig(); HikariConfig config = new HikariConfig();
config.setDriverClassName("com.taosdata.jdbc.TSDBDriver"); if (properties.containsKey("jdbc.driver"))
config.setJdbcUrl("jdbc:TAOS://" + host + ":" + port + "/?charset=UTF-8&locale=en_US.UTF-8&timezone=UTC-8"); config.setDriverClassName(properties.getProperty("jdbc.driver"));
else
config.setDriverClassName("com.taosdata.jdbc.TSDBDriver");
if ("com.taosdata.jdbc.rs.RestfulDriver".equalsIgnoreCase(properties.getProperty("jdbc.driver")))
config.setJdbcUrl("jdbc:TAOS-RS://" + host + ":" + port + "/?charset=UTF-8&locale=en_US.UTF-8&timezone=UTC-8");
else
config.setJdbcUrl("jdbc:TAOS://" + host + ":" + port + "/?charset=UTF-8&locale=en_US.UTF-8&timezone=UTC-8");
config.setUsername(user); config.setUsername(user);
config.setPassword(password); config.setPassword(password);
// maximum-pool-size
if (properties.containsKey("hikari.maximum-pool-size"))
config.setMaximumPoolSize(Integer.parseInt(properties.getProperty("hikari.maximum-pool-size")));
else
config.setMaximumPoolSize(500);
// minimum-idle
if (properties.containsKey("hikari.minimum-idle"))
config.setMinimumIdle(Integer.parseInt(properties.getProperty("hikari.minimum-idle")));
else
config.setMinimumIdle(100);
config.setMaxLifetime(0); config.setMaxLifetime(0);
config.setMaximumPoolSize(500);
config.setMinimumIdle(100);
instance = new HikariDataSource(config); instance = new HikariDataSource(config);
} }
} }

View File

@ -1,4 +1,6 @@
package com.taosdata.taosdemo.utils; package com.taosdata.taosdemo.components;
import com.taosdata.taosdemo.utils.TimeStampUtil;
public final class JdbcTaosdemoConfig { public final class JdbcTaosdemoConfig {
// instance // instance

View File

@ -0,0 +1,39 @@
package com.taosdata.taosdemo.components;
import com.alibaba.fastjson.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class JsonConfig {
public static void main(String[] args) {
JsonConfig config = new JsonConfig();
String str = config.read("insert.json");
JSONObject jsonObject = JSONObject.parseObject(str);
System.out.println(jsonObject);
}
private String read(String fileName) {
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(JsonConfig.class.getClassLoader().getResourceAsStream(fileName))
);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
}
return fileName;
}
}

View File

@ -1,4 +1,4 @@
package com.taosdata.taosdemo.dao.impl; package com.taosdata.taosdemo.dao;
import com.taosdata.taosdemo.dao.DatabaseMapper; import com.taosdata.taosdemo.dao.DatabaseMapper;
import com.taosdata.taosdemo.utils.SqlSpeller; import com.taosdata.taosdemo.utils.SqlSpeller;

View File

@ -1,4 +1,4 @@
package com.taosdata.taosdemo.dao.impl; package com.taosdata.taosdemo.dao;
import com.taosdata.taosdemo.dao.SubTableMapper; import com.taosdata.taosdemo.dao.SubTableMapper;
import com.taosdata.taosdemo.domain.SubTableMeta; import com.taosdata.taosdemo.domain.SubTableMeta;

View File

@ -1,4 +1,4 @@
package com.taosdata.taosdemo.dao.impl; package com.taosdata.taosdemo.dao;
import com.taosdata.taosdemo.dao.SuperTableMapper; import com.taosdata.taosdemo.dao.SuperTableMapper;
import com.taosdata.taosdemo.domain.SuperTableMeta; import com.taosdata.taosdemo.domain.SuperTableMeta;

View File

@ -1,4 +1,4 @@
package com.taosdata.taosdemo.dao.impl; package com.taosdata.taosdemo.dao;
import com.taosdata.taosdemo.dao.TableMapper; import com.taosdata.taosdemo.dao.TableMapper;
import com.taosdata.taosdemo.domain.TableMeta; import com.taosdata.taosdemo.domain.TableMeta;

View File

@ -10,8 +10,11 @@ spring.datasource.password=taosdata
#spring.datasource.driver-class-name=com.taosdata.jdbc.rs.RestfulDriver #spring.datasource.driver-class-name=com.taosdata.jdbc.rs.RestfulDriver
#spring.datasource.username=root #spring.datasource.username=root
#spring.datasource.password=taosdata #spring.datasource.password=taosdata
spring.datasource.hikari.maximum-pool-size=1 #spring.datasource.hikari.maximum-pool-size=1
spring.datasource.hikari.minimum-idle=1 #spring.datasource.hikari.minimum-idle=1
spring.datasource.hikari.max-lifetime=0 #spring.datasource.hikari.max-lifetime=0
logging.level.com.taosdata.taosdemo.dao=error #logging.level.com.taosdata.taosdemo.dao=error
server.port=8888 jdbc.driver=com.taosdata.jdbc.TSDBDriver
hikari.maximum-pool-size=1
hikari.minimum-idle=1
hikari.max-lifetime=0