连接池耗尽

Connection pool getting exhausted

我有一个 spring 启动,使用 java 应用休眠。我将它部署在具有多个实例的码头网络服务器上。如果我有太多(大于 10)个实例,我会得到

com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: FATAL: remaining connection slots are reserved for non-replication superuser connections

许多连接(10x 实例)显示空闲

ps:

postgres  9104  0.0  0.0 248968  4392 ?        Ss   08:07   0:00 postgres: user my_db 127.0.0.1(60095) idle                        

实例的 Hikari 跟踪日志:

2017-02-21 10:59:47.578  DEBUG 7401 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Pool stats (total=10, active=0, idle=10, waiting=0)

设置

 hikari.leakDetectionThreshold: 30000

不记录任何有趣的事情。我觉得这看起来很有趣

有什么办法可以调试吗?我也在 java 7,所以 hikari 2.4.7

我认为您必须在 PostgreSQL 配置中增加 max_connections 参数。

https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server

您不能允许池中保留的连接数超过您的 PostgreSQL 安装所允许的数量。