Односерверная конфигурация
Скрипт для локальной установки односерверной конфигурации платформы:
bash era.sh install --usedefaults --ipaddress=127.0.0.1 --postfix= --master=y --masterdomain=era-platform.ru --dopginstall=y --usereplic=n --pgmode=d --usedockerhubpgimage=y --pgport=5452 --pskcookie=123456
Для получения справки по скрипту установки используйте:
bash install_ssh.sh —help
Двухсерверная конфигурация в одном дата-центре
Двухсерверная конфигурация в одном дата-центре без внешнего арбитра (без кворума).
Особенности работы:
- Высокая доступность между серверами. Сетевая доступность между серверами обеспечивается непрерывно с задержкой не более 1 мс. Любой потерянный пакет считается падением сервера;
- Ресурсов серверов достаточно для полноценной работы платформы на любом из серверов. При их совместной доступности платформа использует ресурсы обоих серверов;
- В случае выхода из строя любого из серверов, конфигурация максимально быстро (в течение пары секунд) переезжает на оставшийся сервер;
- Система переходит в режим односерверной конфигурации, при котором может работать неопределенно долго;
- Двухсерверная конфигурация администрируется так же, как и односерверная. Особенностью является случайное распределение лог-файлов между серверами. Рекомендуется использовать встроенный сборщик логов.
- Файловое хранилище не реплицируется. Записи будут храниться на одном из серверов (но только на одном). В случае выхода из строя одного из серверов, записи этого сервера будут временно недоступны до восстановления работы.
Установка “первого” сервера
bash install_ssh.sh \ --user=era \ --port=22 \ --host=188.1.1.1 \ --ipaddress=192.168.0.101 \ --postfix= \ --master=y \ --masterdomain=era-platform.ru \ --srvname=srv1 \ --dopginstall=y \ --usereplic=y \ --pgmode=h \ --pghostmode=m \ --pgport=5441 \ --pgpostgrespwd=PgPoStGrEsPwD \ --pgerapwd=PgErApWd \ --pgreplicapwd=PgRePlIcApWd \ --pskcookie=PsKcOoKiE \ --usedefaults
Обратите внимание, что установка на сетевой интерфейс 127.0.0.1 невозможна в двухсерверной конфигурации.
Установка “второго” сервера.
bash install_ssh.sh \ --user=era \ --port=22 \ --host=188.1.1.2 \ --ipaddress=192.168.0.102 \ --postfix= \ --master=n \ --micaddress=mic1@192.168.0.101 \ --srvname=srv2 \ --dopginstall=y \ --usereplic=y \ --pgmode=h \ --pghostmode=r \ --pgport=5441 \ --pgpostgrespwd=PgPoStGrEsPwD \ --pgerapwd=PgErApWd \ --pgreplicapwd=PgRePlIcApWd \ --pskcookie=PsKcOoKiE \ --usedefaults
где:
- user=era — имя пользователя для удаленной установки на сервер. Используется только при удаленной установке.
- port=22 — порт сервера для удаленной установки. Используется только при удаленной установке.
- host=188.1.1.2 — ip-адрес удаленного сервера для удаленной установки,
- ipaddress=192.168.0.101 и 192.168.0.102 — ip-адреса будущих серверов платформы соответственно,
- postfix — название контейнера (пустое для одного экземпляра платформы на сервере),
- master=y и n — признак мастер-сервера или нет,
- masterdomain=era-platform.ru — имя FQDN мастер-домена. Используйте только строчные буквы. Изменение мастер-домена очень трудозатратно.
- micaddress=mic1@192.168.0.101 — ip-адрес “первого” сервера для “второго”,
- srvname=srv1 и srv2 — имя сервера для внутреннего использования,
- dopginstall=y - Yes — устанавливать или нет PostgreSQL,
- usereplic=y - Yes — использовать ли репликацию PostgreSQL,
- pgmode=h - Host — режим установки PostgreSQL непосредственное на сервер (не Docker);
- pghostmode=m или r — master и reserve. Режиме работы PostgreSQL соответственно;
- pgport=5441 — порт работы PostgreSQL. Используется отличный от 5432, так как будет занят экземпляром по умолчанию;
- pgpostgrespwd=PgPoStGrEsPwD — пароль для пользователя postgres;
- pgerapwd=PgErApWd — пароль для пользователя erapgadmin;
- pgreplicapwd=PgRePlIcApWd — пароль для работы репликации PostgreSQL;
- pskcookie=PsKcOoKiE — уникальная строка для работы репликации (одинаковая для обоих серверов);
- usedefaults — использовать прочие параметры по-умолчанию.
Таблица распределения микросервисов между серверами
Group | RoleId | Ports | Server 1 | Server 2 |
5441 | DB | DB | ||
10 | callstore | callstore | ||
20 | mdc | mdc | ||
30 | hunt | hunt | ||
40 | reg | reg | ||
50 | rsv | rsv | ||
60 | sel | sel | ||
70 | statestore | statestore | ||
80 | store | store | ||
90 | usr | usr | ||
100 | wssubscr | wssubscr | ||
110 | logstore | logstore | ||
120 | mware | mware | ||
130 | ic | ic | ||
140 | mic | mic | ||
150 | rpci | rpci | ||
160 | rpco | rpco | ||
200 | mix | mix | ||
210 | recmover | recmover | ||
220 | SS220 | svc | svc | |
230 | 80, 443 | ws | ws | |
240 | SS240 | 5090 | b2b | b2b |
250 | SS250 | 5085 | conf | conf |
260 | SS260 | 5080 – 5083 | esg | esg |
270 | SS270 | 5095 | ivr | ivr |
280 | SS280 | 5060 – 5063 | sg | sg |
370 | SS370 | 5086 | prompt | prompt |
290 | SS290 | 2954 .. 2959 | mgc | mgc |
300 | SS300 | 2944 | mg*2 | mg*2 |
310 | SS310 | dms | dms | |
320 | SS320 | msvc | msvc | |
330 | SS330 | im | im | |
340 | SS340 | |||
350 | SS350 | fs | fs | |
360 | SS360 | ap | ap | |
380 | SS380 | dfsync | dfsync | |
390 | SS390 | vmail | vmail | |
400 | SS400 | broker | broker | |
410 | SS410 | -domstore | -domstore | |
420 | SS420 | -meet | -meet | |
430 | SS430 | -redirect | -redirect | |
440 | SS440 | -usercenter | -usercenter |
где:
- жирным - потенциально высоконагруженный микросервис,
- зеленым - активный микросервис (active-active),
- красным - активный микросервис (active-passive),
- черным - равномерно нагруженные микросервисы.
Возможная схема реализации конфигурации