2016-12-13 2 views
0

Я настроил 3 zookeepers и 3 экземпляра activemq в 1 кластере.Activemq перестает работать - setupemq/zookeeper setup

Сценарий

  • 3 ActiveMQ экземпляры только с 1 мастером и два других является ведомым.
  • все 3 экземпляра activemq запущены, то есть sudo service activemq status возвращает running, но проверка журналов, 1 экземпляр (activemq1) в настоящее время ожидает других членов кластера, 1 экземпляр (activemq2) останавливается, 1 экземпляр (activemq3) имеет ошибку. Если учесть, что для выбора мастера требуется только два экземпляра, эта настройка должна быть успешной.
  • два экземпляра activemq должны быть запущены
  • экземпляры zookeeper работают нормально.

Выпуск

Ниже приведены stacktraces соответствующих случаях ActiveMQ. Основываясь на моем понимании, для того, чтобы кластер назначил мастер-экземпляр, ему нужно как минимум два надлежащим образом запускать activemq. Учитывая, что все activemq instanes производит running при выпуске sudo service activemq status, я предполагаю, что внутри каждого экземпляра activemq есть проблема - см. Ниже stacktraces. Теперь, я заметил в журналах, что activemq1 не работает должным образом, поскольку другие экземпляры activemq не удались изнутри. Обратите внимание на stacktrace на activemq2, он застрял после того, как он успешно подключился к zookeeper, и у activemq3 появилась проблема, мне все равно нужно выяснить. Проблема исправлена, когда я перезапустил activemq2 и activemq3. Однако я не могу быть уверен, что этого больше не повторится, поэтому этот вопрос.

  • activem1 показывает ниже StackTrace, который я предполагаю, что это происходит потому, что другие 2 экземпляр ActiveMQ работает, но есть ошибки

Session establishment complete on server 10.5.4.111/10.5.4.111:2181, sessionid = 0x1582db00708000c, negotiated timeout = 4000 Not enough cluster members connected to elect a master. Not enough cluster members connected to elect a master. Not enough cluster members connected to elect a master.

  • activemq2 имеет ниже StackTrace, который тот, которого я не понимаю. Он остановился после успешного подключения к зоопарку, которые должны быть обнаружены в других случаях ActiveMQ, принадлежащих к кластеру-activem1 и activemq3

Opening socket connection to server 10.5.4.111/10.5.4.111:2181 Socket connection established to 10.5.4.111/10.5.4.111:2181, initiating session Session establishment complete on server 10.5.4.111/10.5.4.111:2181, sessionid = 0x1582db00708000d, negotiated timeout = 4000

  • activemq3 имеет ниже StackTrace

    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)[apache-jsp-8.0.9.M3.jar:2.3]

Конфигурация для activemq

предыдущая конфигурация здесь с 2s zkSessionTimeout - по умолчанию. Я сделал это до 4 с, как в googled, чтобы максимизировать время, необходимое для экземпляра activemq, регистрирует себя в zookeeper.

<persistenceAdapter> 
     <replicatedLevelDB 
      directory="${activemq.data}/leveldb" 
      replicas="3" 
      bind="tcp://0.0.0.0:61619" 
      zkAddress="zookeeper_addresses_here" 
      hostname="activemq_hostname_here" 
      zkSessionTimeout="4s" 
     /> 
    </persistenceAdapter> 

Конфигурация для зоопарка

tickTime=2000 
initLimit=10 
syncLimit=5 
dataDir=/my/data/dir 

clientPort=2181 
server.1=activemq1_privateIP:2888:3888 
server.2=activemq2_privateIP:2888:3888 
server.3=activemq3_privateIP::2888:3888 

autopurge.purgeInterval=24 
autopurge.snapRetainCount=5 

Zookeeper версия 3.4.9

ActiveMQ версия 5.13.4

Настройка с помощью Opswork

+0

Heads вверх --- Если это совершенно новая установка, вы можете рассмотреть вопрос о том, что Replicated LevelDB собирается быть устаревшим в предстоящих выпусках ActiveMQ. Если да, то какова ваша платформа? Существуют и другие настройки высокой доступности/репликации, которые могут удовлетворить ваши потребности. –

+0

Спасибо за головы. Однако, основываясь на их [сайте] (http://activemq.apache.org/masterslave.html), мы будем придерживаться для replicatedDB, поскольку теперь мы будем использовать activeMQ. Я видел потоки относительно хрупкости такого рода настроек, но сумел стать достаточно стабильным для своих требований - одним из них было увеличение zkSessionTimeout для activemq, чтобы иметь достаточно времени для подключения к zookeeper. Но это не работает для меня, я думаю. –

+0

Правильно, я не предлагаю не использовать ActiveMQ, я предлагаю вам использовать альтернативную конфигурацию master + slave. NFSv4 (общий) или GFSv2 (реплицированный) гораздо проще поддерживать. –

ответ

0

Атрибут «каталог» ведущий-ведомый MQ будет необходимо обратиться в ту же папку