2016-02-14 2 views
3

Я читаю «Сервисную ткань» и что-то, что я еще не разработал, это когда инициализируется состояние инициализированных состояний?Когда происходит перезагрузка/очистка службы Fabric Fabric®

Если я развиваюсь локально, я предполагаю, что состояние «перезапускается» при каждом запуске приложения. (т.е. нажмите F5 для отладки). Если я развертываю службы в Azure, я представляю, что службы будут запущены, а в следующий раз, когда я их развожу, это рассматривается как обновление. Это означает, что службы поддерживают свое состояние во время обновления. Возможно, я ошибаюсь, поскольку что происходит, если служба или актер имеют изменения в сохраненном состоянии?

Или я ошибаюсь, и вам нужно будет сохранить состояние во внешнем хранилище какого-либо типа, чтобы не потерять пользовательские данные. т.е. заставить службы и актеры поддерживать горячую копию данных и сохранять их, когда это необходимо, в случае, если вся система перезагружена или перераспределена.

ответ

4

По умолчанию состояние остается постоянным для дисков (в дополнение к репликации на 3 узла), поэтому оно должно пережить перезагрузку.

Когда вы нажимаете F5 в Visual Studio, поведение по умолчанию заключается в удалении старого приложения и развертывании текущей версии в качестве нового приложения. Чтобы сохранить состояние в своем кластере dev, вы можете пометить флажок в свойствах проекта, чтобы выполнять обновления вместо чистого развертывания.

У вас такие же варианты при развертывании в Azure - развертывание нового приложения (и потерять состояние) или развертывание обновления для сохранения состояния. Старые и новые версии вашего класса состояния должны быть совместимы, они основаны на DataContract, чтобы сделать это немного проще.

Конечно, возможны сценарии с внешним хранилищем состояния.

+1

Примечание: Если вы используете наборы шкал VM в Azure, если вы сбрасываете масштаб, его диски исчезают, и любое состояние, которое там хранится, теряется. Поэтому вы должны по-прежнему внедрять хорошие процедуры резервного копирования/восстановления. – BrentDaCodeMonkey

+0

Официальная документация согласуется с этим; но на практике я вижу, что это не так. - Обновление, как правило, поддерживается государством *, но иногда 1 или 2 актера все равно будут забывать обо всем без причины; и перезагрузка моей машины, например, приводит к потере всего состояния для всех участников. - Это действительно разочаровывающий набор недостатков. – BrainSlugs83

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