В настоящее время Cloud Run не дает никаких гарантий относительно того, как долго он будет оставаться теплым после запуска. Когда экземпляр не используется, экземпляр сильно ограничивается из-за необязательного завершения работы. Таким образом, у вас есть некоторые ревизии, которые удерживают соединения, даже если они не направлены на трафик.
Даже в этой ситуации я не согласен с идеей, что вам следует избегать использования пула соединений. Пул соединений может снизить задержку, улучшить стабильность и помочь установить верхний предел количества открытых соединений. Кроме того, вы можете использовать некоторые из следующих параметров конфигурации, чтобы помочь контролировать ваш пул:
minimumIdle
- Это свойство контролирует минимальное количество незанятых соединений, которые HikariCP пытается поддерживать в пуле. Если число незанятых подключений падает ниже этого значения, а общее количество подключений в пуле меньше, чем MaximumPoolSize, HikariCP приложит все усилия для быстрого и эффективного добавления дополнительных подключений.
maximumPoolSize
- это свойство контролирует максимальный размер, которыйдоступ к пулу разрешен, включая как незанятые, так и используемые соединения.
idleTimeout
- это свойство контролирует максимальное время, в течение которого соединению разрешено сидеть в пуле бездействующим. Этот параметр применяется только в том случае, если для параметра minimalIdle задано значение меньше, чем MaximumPoolSize. Свободные соединения не будут удалены, когда пул достигнет минимального количества подключений.
Если вы установите для minimumIdle
значение 0, ваше приложение все равно сможет одновременно использовать до maximumPoolSize
соединений. Однако, если соединение в пуле не используется в течение idleTimeout
секунд, оно будет закрыто. Если вы установите для idleTimeout
что-то маленькое, например, 1 минуту, количество подключений, используемых вашим пулом, будет уменьшено до 0, когда он не используется.
Надеюсь, это поможет!