flink使用hikariCP数据库连接池,导致连接泄露

1、flink使用hikariCP数据库连接池

java 复制代码
    private static volatile HikariDataSource dataSource; 
    private static final Object SOURCE_LOCK = new Object(); 
    private DataSource() { 
    }

    private static HikariDataSource getDataSource(StartupParams startupParams) {
        if (dataSource== null || dataSource.isClosed()) {
            synchronized (SOURCE_LOCK) {
                if (dataSource== null || dataSource.isClosed()) {
                    HikariConfig config = new HikariConfig();
                    try {
                        config.setJdbcUrl("XXX");
                        config.setUsername("XXX");
                        config.setPassword("XXX");
                        config.setMaximumPoolSize(20);
                        config.setMinimumIdle(10);
                        config.setConnectionTimeout(30000); 
                    } catch (Exception e) {
                        log.error("初始化HikariCP连接池配置时发生异常,{}", ExceptionUtils.getStackTrace(e));
                    }
                    dataSource= new HikariDataSource(config);
                }
            }
        }
        return dataSource;
    }

在flink中使用hikariCP当做连接池

2、hikariCP的连接泄露

①在flink的启动模式中,如果是job和task分开部署时,最好不在job中使用连接池,否则会在jobmanager中的持有连接

②所有用到连接的地方都要关闭,try-catch-flinally关闭连接

相关推荐
云贝贝贝10 小时前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552714 小时前
Java图像处理实战指南
人工智能·1024程序员节
u0103055271 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u0103055273 天前
Java实用类应用精讲
人工智能·1024程序员节
u0103055274 天前
Java I/O核心操作实战
人工智能·1024程序员节
u0103055275 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节
u0103055276 天前
Java模块化编程实战指南
人工智能·笔记·1024程序员节
u0103055277 天前
使用BufferedReader读取控制台输入
人工智能·1024程序员节
u0103055277 天前
泛型类与类型安全详解
人工智能·1024程序员节
u0103055279 天前
Java异常处理核心机制
人工智能·1024程序员节