Middle
54
Šta može biti problem sa konfiguracijom konekcije na bazu podataka ako implementirate kod, baza je u redu, procesor nije opterećen, ali zahtevi putem REST API se izvršavaju sekvencijalno, kao da su jedan za drugim?
Компаније где су питане
Evrone
Одговор од АИ
sobes.tech АИ
Если запросы через 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,
});
Если пул слишком маленький, запросы будут ждать своей очереди, что и приводит к последовательному выполнению.