Я тестировал кластер Master/Worker со следующей настройкой:
- 2 виртуальных сервера, на каждом сервере есть Master и Worker (отдельные jvms)
- Мастер создается с помощью ClusterSingletonManager
- Мастера также являются семенными узлами.
Я тестировал отказоустойчивость мастеров, вручную закрывая «активный» мастер-узел. В сценарии, когда рабочие не обрабатывают задачи, отработка отказа работает нормально. «Неактивный» мастер-узел обнаруживает другой узел как недостижимый и в конечном итоге запускает своего главного актера.
Но если воркеры заняты, то отказоустойчивость полностью не работает. «Неактивный» главный узел определяет другой как недоступный и помещает в карантин, как указано в сообщении ниже, но узел никогда не запускает главный актор.
2014-07-23 23:52:31,777 ИНФОРМАЦИЯ [JobRunner-akka.actor.default-dispatcher-17] Помещенный в карантин адрес [akka.tcp://[email protected]:40000] по-прежнему недоступен или не был перезапущен. Держим на карантине.
У кого-нибудь есть идеи, почему это происходит и есть ли решение?
Спасибо. С Уважением.