Серверы
Сервер Платформы (или узел) является базовой сущностью, обеспечивающей работу системы. Для каждого физического или виртуального сервера для включения в кластер необходимо зарегистрировать Сервер Платформы. На одном физическом или виртуальном сервере может быть зарегистрирован только один сервер. Этот сервер управляет всеми очередями сообщений и обеспечивает доставку сообщений до сервисов и коннекторов к внешним системам. Также на сервере выполняется контроль по взаимодействию с сервисами и коннекторами, выполняется сбор статистических данных.
Создание сервера
Чтобы добавить новый сервер в кластер, перейдите в раздел Серверы и нажмите на кнопку + в рабочей области:
Отобразится меню добавления нового сервера:
На вкладке Основные заполните следующие поля:
Название: произвольное название сервера.
Имя: уникальное имя сервера.
Адрес: адрес сервера.
Порт: номер порта, на котором доступен сервер.
Комментарий: дополнительное описание сервера.
Для активации сервера установите флажок Включен.
Для перехода в режим редактирования конфигурации сервера нажмите на соответствующую кнопку:
После внесения данных нажмите на кнопку Сохранить и нажмите на кнопку Применить конфигурацию:
Параметр |
Тип данных |
Описание |
---|---|---|
hasControlCenter |
boolean |
Установлен ли Центр настройки. |
address |
string |
Адрес машины, к которой привязан узел. |
port |
integer($int32) |
Порт для подключения Центра настройки и других узлов. |
controlCenterPort |
integer($int32) |
Порт сервера управления. |
serviceKey |
string($uuid) |
Идентификатор хоста, на котором работает узел |
replicateTo |
[string($uuid)] |
Список узлов, на которые выполняется репликация. |
allocationsGlobal |
AllocationConfig |
Настройки привязки модулей и систем к узлу. |
nodeResolveList |
[NodeResolveEntity] |
Настройки сопоставления имен машин и их ip-адресов. |
isActive |
boolean |
Запущен ли узел. |
folderId |
string($uuid) |
Идентификатор папки. |
entityId |
string($uuid) |
Идентификатор объекта метаданных. |
clusterId |
string($uuid) |
Идентификатор кластера. |
name |
string |
Имя. |
description |
string |
Описание. |
version |
integer($int64) |
Версия. |
tagsCollection |
[string] |
Список тегов. |
Система предоставляет возможность создания нескольких серверов в схеме. При создании схемы из нескольких серверов необходимо учитывать, что параметры address, port, controlCenterPort должны быть уникальными. Если в схеме планируется использования нескольких серверов, необходимо заранее описать правила запуска сервисов, репликации и выбрать сервер-координатор. Правила запуска сервисов устанавливаются в блоке параметров allocationsGlobal: необходимо указать сервисы и системы, которые будут запущены на сервере. Для сохранения работоспособности схемы в целом предусмотрен механизм репликации. Если сервер недоступен или сломан, все указанные сервисы и системы будут запущены на резервном сервере. Для этого необходимо указать адрес сервера или несколько адресов в параметре replicateTo.
Конфигурация сервера сохраняется в локальном файле C:\ProgramData\Datareon\Platform\LocalNodeConfig.json
Конфигурация обновляется при изменениях в настройках сервера управления, репликации и изменениях, производимых посредством установщика.
Чтобы привязать конкретный модуль или систему к узлу, в конфигурации узла добавьте значение allocationsGlobal.
Пример:
"allocationsGlobal": {
"$type": "DT.ClusterConfiguration.Allocation.AllocationConfig, DT_Core",
"systems": [
{
"$type": "DT.ClusterConfiguration.Allocation.AllocationInfo, DT_Core",
"entityId": "281152fc-325c-4fef-ad4e-8f2da8a45013", //гуид привязываемой системы
"reason": "FromConfig",
"initialReason": "FromConfig"
}
],
"modules": [
{
"$type": "DT.ClusterConfiguration.Allocation.AllocationInfo, DT_Core",
"entityId": "083006d6-0059-4cd1-8aa5-6424624f6226", //гуид привязываемого модуля
"reason": "FromConfig",
"initialReason": "FromConfig"
}
],
"disableAutoAssignment": false
},
Пример заполнения nodeResolveList:
"nodeResolveList": [
{
"$type": "DT.ClusterConfiguration.NodeResolveEntity, DT_Core",
"description": "главный сервер - произвольное описание для интерфейса",
"nodeIp": "172.16.10.58",
"externalServer": {
"$type": "DT.ClusterConfiguration.ResolveEntity, DT_Core",
"description": "главный сервер - произвольное описание для интерфейса",
"ip": "192.168.101.27",
"synonyms": [
"SRV-AX-RAZV03"
]
}
}
]
Описание полей из файла LocalNodeConfig.json:
Параметр |
Тип данных |
Описание |
---|---|---|
NodeId |
Guid |
Идентификатор узла кластера. |
NodeName |
string |
Имя узла NodeManager. |
ServiceKey |
Guid |
Идентификатор хоста. Создается при установке. Нельзя изменять. |
CertificateSettings |
Настройки сертификата. |
|
ProgramDataFolder |
string |
Папка с данными программы. |
ControlServerSettings |
Настройки сервера управления. |
|
MasterControlServerAddress |
Uri |
Адрес машины мастер-сервера ЦН, если он расположен на другой машине, иначе null. |
RunControlServer |
bool |
Запускать ли на узле сервер управления. |
HasControlCenter |
bool |
Установлен ли на узле Центр настройки. |
NodeListeningPort |
int |
Порт для публикации TCP-сервера |
IsActive |
bool |
Запущен ли узел. |
Управление сервером с неизвестного Центра настройки
Если сервер получает запрос от Центра настройки, который находится по не доверенному адресу, запрос будет отклонен и в ответ будет отправлено сообщение с ошибкой. В Центре настройки будет отображена ошибка со следующей информацией: В списке зарегистрированных Центров настроек на сервере отсутствует адрес сервера Центра настройки. Чтобы добавить адрес Центра настройки в список доверенных, на устройстве сервера-координатора в командной строке выполните следующую команду:
Для Windows:
DatareonPlatformService.exe SetCS <ip adress>
Для Linux:
sudo /usr/bin/datareon/platform/DatareonPlatformService setCS <ip adress>
После выполнения команды требуется применить конфигурацию Центра настройки повторно.