Postgresql kubernetes吊舱被杀死后释放JDBC连接

Postgresql kubernetes吊舱被杀死后释放JDBC连接,postgresql,spring-boot,kubernetes,spring-data-jpa,Postgresql,Spring Boot,Kubernetes,Spring Data Jpa,我正在Kubernetes运行几个spring boot应用程序。每个应用程序都使用spring JPA连接到Postgresql 10.6数据库。我注意到的是,当pod意外地被终止时,与数据库的连接不会被释放 运行从pg_stat_数据库中选择sum(numbackends)返回50,在杀死运行spring应用程序的几个pod并重新运行查询后,这个数字跳到60,这最终会导致到postgresql的连接数超过最大值,并阻止重新启动的pod的应用程序连接到数据库 我曾尝试过postgresql选项

我正在Kubernetes运行几个spring boot应用程序。每个应用程序都使用spring JPA连接到Postgresql 10.6数据库。我注意到的是,当pod意外地被终止时,与数据库的连接不会被释放

运行
从pg_stat_数据库中选择sum(numbackends)返回50,在杀死运行spring应用程序的几个pod并重新运行查询后,这个数字跳到60,这最终会导致到postgresql的连接数超过最大值,并阻止重新启动的pod的应用程序连接到数据库

我曾尝试过postgresql选项
idle\u in\u transaction\u session\u timeout
将其设置为15秒,但这并不会删除旧连接,而且数量不断增加

我正在为我的spring应用程序使用
com.zaxxer.hikari.HikariDataSource
数据源,我想知道是否有办法防止这种情况发生,无论是在posgresql方面还是在spring boot方面

欢迎提出任何意见或建议

Spring启动版本:2.0.3.发布
Java版本:1.8

Postgresql 10.6版

这个问题不仅会出现在kubernetes吊舱上,而且会出现在一个简单的应用程序上,该应用程序运行在一个被强制终止的服务器上(比如Linux上的
kill-9PID
),并且没有机会通过spring boot的关闭挂钩进行清理。我认为在这种情况下,应用程序方面没有任何帮助。但是,您可以在数据库端尝试使用前面提到的几种方法清理非活动连接。

这个问题不仅会出现在kubernetes吊舱上,也会出现在服务器上运行的简单应用程序上,该服务器被强制终止(如Linux上的
kill-9PID
)并且没有机会通过弹簧靴的关闭挂钩进行清理。我认为在这种情况下,应用程序方面没有任何帮助。不过,您可以尝试通过前面提到的数据库端的几种方法清理非活动连接