Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Минимальный набор серверов для включения в кластер состоит из основного сервера, резервного сервера и арбитра. Арбитр не хранит данные, а является лишь посредником при проведении голосования по выбору мастера. Возможно запустить службу арбитра на одном из двух серверов с базами на нестандартных портах. Допустим, если требуется создать кластер из трёх серверов (физических или виртуальных машин). Описание кластеров приведено в таблице.

ИмяIP-адресРольПриоритет
1wnam-srv1.domain.net1.2.3.89PRIMARY2
2wnam-srv2.domain.net1.2.3.90SECONDARY1
3wnam-arbiter.domain.net1.2.3.92ARBITER0
-wnam.domain.net1.2.3.91Кластерный адрес системы WNAMНе участвует в БД MongoDB

На каждом из серверов в файлах /etc/hosts необходимо сделать записи вида "127.0.0.1 localhost wnam-srv1.domain.net", иначе кластер не соберется. В конфигурационных файлах /etc/mongod.conf на каждом из серверов следует добавить:

...

На этом настройка БД MongoDB завершена. Если необходимо перевести в реплицированный режим имеющуюся базу, то появится файл с базой на втором (secondary) сервере (/var/lib/mongodb/). 

Для исключения снижения производительности кластера БД, при отсутствии по каким-то причинам одной из нод кластера, рекомендуется также отключить flowcontrol в MongoDB:

db.adminCommand( { setParameter: 1,enableFlowControl: false } )

Данная настройка будет действовать до перезапуска службы mongod

Если требуется полное отключение flowcontrol, то следует добавить в конфигурационный файл /etc/mongod.conf следующие строки:

setParameter:
  enableFlowControl: false

Настройка системы WNAM

На обоих серверах (primary и secondary) необходимо установить систему WNAM совершенно одинаково (версия, пакеты, скрипты). Через интерфейс администратора необходимо настроить систему WNAM на основном сервере, ввести лицензионный ключ, позволяющий использовать кластерную конфигурацию. Для версий системы WNAM выпуска до сентября 2023 года в работе кластера используется кэш Hazelcast. В конфигурационном файле /home/wnam/wnam.conf, определяющем параметры запуска приложения, следует указать два сервера системы WNAM:

...

В конфигурационном файле /home/wnam/application.propertiesyaml, определяющем параметры работы с БД, приложения, необходимо указать три сервера БД MongoDB:

...
spring.data.mongodb.:
data:
mongodb:
uri=mongodb://wnam-db1,wnam-db2,wnam-db3/wnam_db
...

При использовании нестандартного порта его можно указать после имени сервера через двоеточие:

spring.data.mongodb.:
data:
mongodb:
uri=mongodb://wnam-db1,wnam-db2,wnam-db2:27120/wnam_db

В этом же файле для сервера, который должен быть предпочтительным главным по умолчанию, следует указать:

netams.wnam.cluster.:
wnam:
cluster:
role=master
После произведенных настроек следует перезапустить систему WNAM на основном и резервном сервере. В интерфейсе администратора каждого из серверов на главной странице появятся дополнительные записи.
 

При этом, оба сервера, фактически, будут обращаться к одной БД. Можно проверить, что произойдет, если изменить настройки на одном сервере системы WNAM, и проверить изменения на втором сервере.

...