55 lines
1.8 KiB
Java
55 lines
1.8 KiB
Java
package com.zdjizhi.utils.ck;
|
|
|
|
import cn.hutool.core.io.IoUtil;
|
|
import cn.hutool.log.Log;
|
|
import cn.hutool.log.LogFactory;
|
|
import ru.yandex.clickhouse.BalancedClickhouseDataSource;
|
|
import ru.yandex.clickhouse.settings.ClickHouseProperties;
|
|
|
|
import java.sql.Connection;
|
|
import java.sql.SQLException;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
import static com.zdjizhi.common.FlowWriteConfig.*;
|
|
|
|
public class CKUtils {
|
|
|
|
private static final Log log = LogFactory.get();
|
|
|
|
private static Connection connection;
|
|
|
|
public static Connection getConnection() {
|
|
|
|
try {
|
|
ClickHouseProperties props = new ClickHouseProperties();
|
|
props.setDatabase(CK_DATABASE);
|
|
props.setUser(CK_USERNAME);
|
|
props.setPassword(CK_PIN);
|
|
props.setConnectionTimeout(CK_CONNECTION_TIMEOUT);
|
|
props.setSocketTimeout(CK_SOCKET_TIMEOUT);
|
|
props.setMaxThreads(50);
|
|
|
|
BalancedClickhouseDataSource blDataSource = new BalancedClickhouseDataSource("jdbc:clickhouse://" + CK_HOSTS, props);
|
|
blDataSource.actualize();
|
|
blDataSource.scheduleActualization(10, TimeUnit.SECONDS);//开启检测
|
|
|
|
// HikariConfig conf = new HikariConfig();
|
|
// conf.setDataSource(blDataSource);
|
|
// conf.setMinimumIdle(1);
|
|
// conf.setMaximumPoolSize(20);
|
|
//
|
|
// HikariDataSource hkDs = new HikariDataSource(conf);
|
|
connection = blDataSource.getConnection();
|
|
log.debug("get clickhouse connection success");
|
|
} catch (SQLException e) {
|
|
log.error("clickhouse connection error ,{}", e);
|
|
}
|
|
return connection;
|
|
}
|
|
|
|
public static void close(Connection connection) throws Exception {
|
|
IoUtil.close(connection);
|
|
}
|
|
|
|
}
|