Разница между io.r2db c .pool.PoolingConnectionFactoryProvider.MAX_SIZE и максимальным размером ConnectionPoolConfiguration в r2dbc - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь понять разницу между 2 настраиваемыми параметрами при создании пула соединений с использованием r2db c -pool.

Мне удалось настроить пул соединений с помощью следующего сообщения: Размер пула соединений с postgres r2db c -pool

Но хотел понять разницу при настройке максимального и начального размера при создании

ConnectionFactory connectionFactory = ConnectionFactories. get (ConnectionFactoryOptions.builder () .option (ДРАЙВЕР, "пул") .option (PROTOCOL, "postgresql") .option (HOST, host) .option (USER, user) .option (PASSWORD, password) .option (MAX_SIZE, 30) .option (INITIAL_SIZE, 10) .option (DATABASE, database) .build ());

ConnectionPoolConfiguration configuration = ConnectionPoolConfiguration.builder ( connectionFactory) .maxIdleTime (Duration.ofMinutes (30)) .initialSize (initialSize) .maxSize (maxSize) .initialSize (20) .maxCreateConnectionTime (Dur ation.ofSeconds (1)) .build ();

1 Ответ

0 голосов
/ 20 июня 2020

На самом деле разницы нет, это просто разные способы создания пула подключений.

Начальный размер - это количество открытых подключений к базе данных после запуска приложения.

Вы можете проверить это с помощью запроса:

select * from pg_stat_activity;

Вы увидите точно то число, которое вы указали в качестве начального размера.

Максимальный размер - это максимальное количество подключений, которые могут быть открыты в в то же время (вы не контролируете это напрямую, реализация базового пула будет масштабировать количество открытых соединений с более высокой нагрузкой)

...