springboot 运行一段时间之后无法获取到数据库连接,后续排查是2个问题引起
HttpClient 连接池配置连接数太少,而且使用 CloseableHttpClient 后没有关闭 CloseableHttpResponse,导致线程阻塞,事务无法结束,数据库连接没有还给连接池
response.close(); @Bean(name = "httpClientConnectionManager") public PoolingHttpClientConnectionManager getHttpClientConnectionManager(){ PoolingHttpClientConnectionManager httpClientConnectionManager = new PoolingHttpClientConnectionManager(); httpClientConnectionManager.setMaxTotal(100); httpClientConnectionManager.setDefaultMaxPerRoute(100); return httpClientConnectionManager; }
maximum-pool-size: 50
@Bean @Primary @ConfigurationProperties(prefix = "spring.datasource") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); }
@Bean @Primary @ConfigurationProperties(prefix = "spring.datasource.hikari") public HikariDataSource dataSource(DataSourceProperties properties) { HikariDataSource dataSource = properties.initializeDataSourceBuilder().type(HikariDataSource.class).build(); if (StringUtils.hasText(properties.getName())) { dataSource.setPoolName(properties.getName()); } return dataSource; }
springboot 运行一段时间之后无法获取到数据库连接问题排查
原文:https://www.cnblogs.com/xpang/p/12157705.html