Настройка PostgreSQL
Компоненты MyBPM API и MyBPM Cons должны иметь доступ к БД PostgreSQL. Параметры доступа настраиваются через переменные окружения:
П.о. | Пример значения | Описание |
---|---|---|
MYBPM_AUX1_HOST | localhost | Хост (домен или IP-адрес) машины, где находиться PostgreSQL |
MYBPM_AUX1_PORT | 5432 | Порт, на котором работает сервер |
MYBPM_AUX1_DB_NAME | mybpm_aux1 | Имя базы данных |
MYBPM_AUX1_USER_NAME | mybpm | Пользователь подключения |
MYBPM_AUX1_PASSWORD | hj34b2j23b4jh4d | Пароль пользователя |
1. Дополнительные привилегии
1.2. Создание схем
Пользователь mybpm
должен иметь возможность создавать схемы
create schema ...
Это нужно для пользователей плагинов - плагинам запрещено иметь доступ к системным данным, поэтому для каждого плагина готовиться своя схема и пользователь, который имеет доступ только к этой схеме.
1.3. Создание других пользователей
Пользователь mybpm
должен иметь возможность создавать других пользователей для плагина, чтобы ограничить плагины
только позволенным им данным.
2. Настройка пулов-соединений
Платформа для доступа к БД использует пул-соединений и параметрами этого пула можно управляет с помощью конфигурационного файла. В системе конфигурации он находится по адресу:
/mybpm/configs/Aux1DbDataSourceConfig.txt
Пример этого файла:
# Created at 2024-08-12 10:26:16
# Кофиг для настройки DataSource базы aux1
# Значение максимального времени когда коннекшн может быть в состоянии idle
idleTimeout=600000
# Значение максимального Pool size для коннекшна в базу aux
aux1MaxPoolSize=10
Сервер платформы при старте открывает сразу aux1MaxPoolSize
соединений к БД и держит их в состоянии IDLE, чтобы
можно было быстро использовать.
ПРИМЕЧАНИЕ: нужно быть внимательным, чтобы не превысить максимальное количество соединений. Например, если на сервере
PostgreSQL настроено максимальное количество соединений 30, в файле настроено aux1MaxPoolSize=10
, а количество
запущенных серверов платформы 5 (один api и четыре cons). В результате каждый из пяти серверов пытается открыть 10
соединений, итого серверам нужно 5*10 = 50
соединений, а в PostgreSQL настроено всего 30 соединений, из-за этого
сервера не могут запуститься. В данном случает количество соединений нужно увеличить до 50*2 = 100
.
При этом сервера займут 50 соединений, и 50 останется в резерве. В резерве всегда нужно оставлять, например для
rollout-restart. Этот вид перезапуска серверов работает так, что вначале запускаются новые сервера, старые продолжают
работать и обслуживать трафик. И только когда новые сервера запустились и получили все необходимые им соединения,
старые сервера останавливаются.
Чтобы новые сервера могли запуститься нужно иметь резерв соединений в PostgreSQL.