Middleware (mware)
Описание
Обеспечивает функции переноса данных между внутренними сервисами внутри сайта, а также контроля корректности работы.
Разделена на микросервисы по доменам. Обеспечивает автоматическую синхронизацию работы между сайтами, обслуживающими домен.
Резервируется в режиме Active-Passive. Масштабируется разделением доменного дерева.
Сервисы:
* Мониторинг работоспособности сервиса синхронизации файлов fsync.
* Мониторинг глобальных имен.
* Мониторинг состояния MEGACO-подключений между MGC и MG.
* Обеспечение функционирования учетных записей sipuser, настроенных на работу без регистрации.
* Управление звонками через API (callmanager).
* Сервис публикации ролевых приложений.
* Сервис голосовых оповещений.
* Сервис критических секций (компонент сценариев "Мьютекс" и др.).
* Контроллер потоковой репликации PostgreSQL.
* Сервис сопоставления записи с шаблоном (audoimatcher).
Код |
|
Режим работы |
|
Режим резервирования |
|
Типы сайтов |
|
Слой |
|
Размещение |
|
Сохранение и восстановление состояния при перезагрузке |
|
Приложение |
|
Параметры
Имя | Тип | Умолчание | Описание |
---|---|---|---|
|
|
required |
Имя. Может состоять из латинских букв и цифр, должно начинаться с буквы. |
|
|
required |
Тип функциональной роли. Возможные значения: |
|
|
required |
Алиас сетевого интерфейса сервера, на котором будет происходить внутреннее взаимодействие функциональных ролей между собой. |
|
|
required |
Номер группы. |
|
|
required |
Порядок экземпляра функциональной роли в рамках группы. |
|
|
empty |
Список имен доменов, которые обслуживает данная группа. |
|
|
empty |
Настройки для контроллера серверов PostgreSQL, находящихся в режиме потоковой репликации (версия pgsql 12+). Настройки значений для групп:
Настройки значений для серверов:
Указанное значение этого параметра не проверяется валидатором конфигурации в функциональной роли Все функциональные роли системы автоматически переключаются в работу с новым мастером, указанным в конфигурации, вне зависимости от данной настройки. =Настройка PostgreSQL= Для того, чтобы сервис контроллера работал корректно, требуется предварительная настройка экземпляров PostgreSQL. Версия PostgreSQL не ниже 12. postgresql.conf
listen_addresses = '*' hot_standby = on wal_level = replica max_wal_senders = 10 wal_keep_segments = 32 promote_trigger_file = '/var/lib/postgresql/12/era_instance_01/master.signal' pg_hba.conf
host all replicator 0.0.0.0/0 md5 Если второй сервер настроен в режиме мастера, то после первого запуска контроллер автоматически переведет одного из них в режим репликации. |
|
|
|
Признак запуска процесса audio-matcher, используется для работы компонента ivr сценария - Антиробот. |
Пример конфигурации
Управление конфигурацией производится в приложении, доступном для администраторов мастер-домена. Приложение скрывает полное содержание конфигурации, однако тем не менее оно доступно через API.
Конфигурация содержит раздел для описания всех экземпляров всех функциональных ролей. Параметры определяются для каждого конкретного экземпляра функциональной роли.
{
"name": "mware2",
"roletype": "mware",
"iface": "eth0",
"pg_controller": [
{"key": "general",
"servers": [
{
"ssh_host": "192.168.0.123",
"ssh_port": 22,
"ssh_user": "postgres",
"ssh_pwd": "123456",
"pg_host": "192.168.0.123",
"pg_port": 5433,
"pg_replica_user": "replica",
"pg_replica_pwd": "654321",
"pg_database": "postgres",
"pg_ctl_command": "/usr/lib/postgresql/12/bin/pg_ctl",
"pg_basebackup_command": "pg_basebackup",
"pg_data_folder": "/var/lib/postgresql/12/instance01",
"pg_backup_folder": "/var/lib/postgresql/12/backups/instance01",
"pg_log_filepath": "/var/log/postgresql/postgresql-12-instance01.log",
"pg_signal_filepath": "/var/lib/postgresql/12/instance01/master.signal"
},
{
"ssh_host": "192.168.0.124",
"ssh_port": 22,
"ssh_user": "postgres",
"ssh_pwd": "123456",
"pg_host": "192.168.0.124",
"pg_port": 5433,
"pg_replica_user": "replica",
"pg_replica_pwd": "654321",
"pg_database": "postgres",
"pg_ctl_command": "/usr/lib/postgresql/12/bin/pg_ctl",
"pg_basebackup_command": "pg_basebackup",
"pg_data_folder": "/var/lib/postgresql/12/instance01",
"pg_backup_folder": "/var/lib/postgresql/12/backups/instance01",
"pg_log_filepath": "/var/log/postgresql/postgresql-12-instance01.log",
"pg_signal_filepath": "/var/lib/postgresql/12/instance01/master.signal"
}
]
}
],
"group": 981001,
"order": 10
}