2016-10-05 2 views
0

У меня есть 3 брокера ActiveMQ в сетевой файловой системе (GlusterFS)/Конфигурация ведущего ведомого устройства - все в виртуальных машинах.
Если мастер не работает, клиент должен перейти на новый мастер.
Проблема заключается в том, что соединение с новым мастером занимает около 50 секунд.
Это разумно?
Как его улучшить?

Мое соединение клиента выглядит следующим образомActiveMQ берет время до отказа

failover:(tcp://a1:61616?connectionTimeout=1000,tcp://a2:61616?connectionTimeout=1000,tcp://a3:61616?connectionTimeout=1000)?randomize=false&maxReconnectDelay=10000&backup=true" 

Также при отключении хозяина, отсоединив сетевой кабель он останавливается и бросает исключение в отношении к kahaDB (который находится на GlusterFS) и необходимо перезапустить.
Существует ли обходной путь для такого поведения, так что мастер-брокер автоматически перезагружается или может автоматически подключаться после возвращения сети?

ответ

1

Отказоустойчивость зависит от времени, которое берет на себя файловая система для освобождения блокировки файла.

В вашем случае кластер NFS ожидает 50 секунд, чтобы обнаружить, что первый узел потерян, и поэтому отпустите блокировку в файле kahadb, который затем может быть занят вторым узлом.

Вы можете настроить эту задержку с параметрами NFSD_V4_GRACE и NFSD_V4_LEASE в конфигурационном файле сервера NFS (/etc/sysconfig/nfs на системах redhat/centos).

Вы также можете настроить kahadb lockKeepAlivePeriod см http://activemq.apache.org/pluggable-storage-lockers.html

+0

может же быть сконфигурирован в GlusterFS как это мой разделяемой файловой системы. Это была ошибка, говорящая о нфс. –

+1

Я не знаю о GlusterFS, я полагаю, что есть и параметр LOCK_RELEASE. Обратите внимание, что не все «кластерные» файловые системы поддерживаются ActiveMQ, посмотрите (http://activemq.apache.org/shared-file-system-master-slave.html). –

Смежные вопросы