Я ищу способ создания пула соединений для многих БД на одном сервере БД (PostgreSQL Аврора). Это означает, что мне нужна возможность изменения целевой БД соединения во время выполнения. В настоящее время я использую HikariCP для пула соединений, в стеке Spring Boot и JHispter.
Справочная информация:
- нам нужно развернуть многопользовательскую микросервисную систему с один сервер БД (точнее, c, один экземпляр AWS Аврора PostgreSQL)
- Наше решение мультитенантности состоит в том, что у каждого арендатора есть БД, в этой БД у нас много схем для каждый сервис. Все базы данных находятся в одном экземпляре AWS Aurora.
Наша проблема:
- при таком развертывании у нас есть пул соединений для каждого (арендатор x микро- сервисный экземпляр). Это приводит к огромному количеству соединений.
- Ie: с размером пула 50 соединений / пул. Нам нужно: 500 арендаторов x 20 экземпляров микросервисов x 50 подключений / пул = 500 000 подключений.
- Максимально допустимое количество подключений к любой базе данных Aurora составляет 16000, и фактически по умолчанию это "max_connections" "Параметр обычно установлен на что-то меньшее.
Так что теперь я ищу способ увеличить область нашего пула, чтобы многие арендаторы могли использовать один и тот же пул. Поскольку мы используем только 1 экземпляр сервера Aurora, я думаю, что можно создать пул соединений, который может быть разделен между многими арендаторами. Есть ли способ иметь пул соединений, который может переключать БД во время выполнения?