Я использую пару весенних загрузочных приложений в Kubernetes.Каждое приложение использует Spring JPA для подключения к базе данных Postgresql 10.6.Что я заметил, так это то, что когда модули неожиданно уничтожаются, соединения с базой данных не освобождаются.
Запуск SELECT sum(numbackends) FROM pg_stat_database;
в базе данных возвращает, скажем, 50, после убийства пары модулей при запуске приложения spring ипри повторном выполнении запроса это число увеличивается до 60, что в конечном итоге приводит к тому, что число подключений к postgresql превышает максимальное и предотвращает подключение перезапущенных приложений модуля к базе данных.
Я экспериментировал с параметром postgresql idle_in_transaction_session_timeout
, установив его в15 секунд, но это не прерывает старые соединения, и число продолжает расти.
Я использую источник данных com.zaxxer.hikari.HikariDataSource
для своих весенних приложений, и мне было интересно, есть ли способ предотвратить это, либона стороне posgresql или весенней загрузки.
Любые советы или предложения приветствуются.
Версия загрузочной пружины: 2.0.3.RELEASE
Версия Java: 1.8
Версия Postgresql 10.6