使用HikariCP的故障转移功能,实现在数据库故障转移时自动重新连接。
示例代码:
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:postgresql:///");
config.setUsername("");
config.setPassword("");
config.setDriverClassName("org.postgresql.Driver");
HikariDataSource dataSource = new HikariDataSource(config);
dataSource.setConnectionTimeout(5000); // 设置连接超时时间
// 设置故障转移功能
dataSource.setConnectionInitSql("SELECT 1");
dataSource.setConnectionTestQuery("SELECT 1"); // 在每次连接获取前都会执行该语句
dataSource.setLeakDetectionThreshold(TimeUnit.SECONDS.toMillis(10));
dataSource.setMinimumIdle(2);
dataSource.setMaximumPoolSize(10);
Connection connection = dataSource.getConnection();