У меня задача обработки очереди с низким процессором, которую мне нужно продолжать в течение потенциально длительного периода времени. В случае сбоя задачи я хотел бы, чтобы задача выполнялась в кластерной среде с высокой степенью готовности, и задача должна «переключиться» на другую машину, если первая машина выходит из строя. Каков наилучший способ убедиться, что у меня есть задача, работающая только на одном компьютере в кластере за раз, с бесперебойным откатом при отказе машины?Сохранение длительной задачи, выполняемой на одной машине кластера с откатом?
Прямо сейчас, я планирую использовать JGroups для реализации этой функции. Я буду поддерживать один канал для каждой задачи, и только руководитель канала выполнит задачу, а остальные участники «последуют». Затем, если лидер канала когда-либо изменится, новый лидер канала поднимется, где последний остановился.
Кто-нибудь использовал JGroups для решения этой проблемы? Каков был ваш опыт?
Я не могу прокомментировать опыт работы с JGroup, но, безусловно, он способен это сделать. Для нашего (в моей работе) требования мы написали простую кластерную структуру UDP. Рамочные выборы хозяев и выбрать лидера, если лидер умрет, тогда один из членов начнет выборы. – Peeyush
Спасибо за комментарий! Это отличная информация. – sigpwned