Middle
70
Ką gali būti ne taip su duomenų bazės prisijungimo konfigūracija, jei diegiate kodą, duomenų bazė tvarkoje, procesorius nėra apkrautas, tačiau užklausos per REST API vykdomos sekliškai, tarsi viena po kitos?
Įmonės kur klausė
Evrone
Atsakymas iš AI
sobes.tech AI
Если запросы через REST API выполняются последовательно, хотя процессор не загружен и база в порядке, вероятная причина — недостаточное количество соединений в пуле подключения к базе данных.
В Node.js часто используется пул соединений для работы с БД. Если пул настроен с минимальным количеством соединений (например, 1), то запросы будут обрабатываться последовательно, ожидая освобождения соединения.
Что проверить и исправить:
- Увеличить размер пула соединений (connection pool size).
- Убедиться, что соединения не блокируются длительными транзакциями.
- Проверить, что запросы к БД выполняются асинхронно и не блокируют event loop.
Пример настройки пула для PostgreSQL с использованием pg:
const { Pool } = require('pg');
const pool = new Pool({
max: 20, // максимальное количество соединений в пуле
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
});
Если пул слишком маленький, запросы будут ждать своей очереди, что и приводит к последовательному выполнению.