2017-02-22 35 views
0

Я работаю над POC для очистки пользовательских событий работоспособности отдельных экземпляров, сообщаемых каждым экземпляром службы (в настоящее время служба развернута на 3 экземпляра). Я очищаю отчеты о начале обновления приложения.Есть ли способ получить доступ ко всем экземплярам из одного экземпляра во время обновления приложения?

Теперь проблема заключается в том, что любое событие «Ошибка», зарегистрированное любым или всеми экземплярами, при выполнении обновления приложения, первый экземпляр обновляется (отчеты также очищаются), но поскольку остальные два в состоянии ошибки SF откатывает обновление.

Один из вариантов для меня - это обновление неконтролируемой силы. Но просто хочу знать, есть ли способ получить доступ к данным двух других экземпляров, например от NodeContext? Если есть, я хотел бы попытаться очистить собственные события работоспособности ошибок от других экземпляров, а также при обновлении первого экземпляра.

Спасибо!

+0

Ваш вопрос непонятен. Что вы подразумеваете под «Я очищаю отчеты о начале обновления приложения»? И что именно вы делаете, когда говорите «обновление»? – A3006

+0

Я очищаю пользовательские события работоспособности, которые сообщаются службой при обновлении приложения, например обновление версии конфигурации. –

ответ

1

Звучит так, как будто вы злоупотребляете моделью здоровья. Состояние состояния ошибки: Предполагается, что прекратите прокатное обновление. Если вы просто очистите состояния работоспособности ошибок до начала обновления, тогда в действительности нет смысла сообщать о состоянии ошибки.

Теперь проблема заключается в том, что любое событие «Ошибка», зарегистрированное любым или всеми экземплярами, при выполнении обновления приложения, первый экземпляр обновляется (отчеты также очищаются), но поскольку другие два все еще находятся в состоянии ошибки, SF откатывает обновление.

Да, это важная особенность Сервисной ткани. Система делает именно то, что она должна делать: она откатывает ваше обновление, потому что вы сообщили об ошибке.

С точки зрения сервиса Fabric, состояние ошибки достаточно серьезное, что система не коснется вашей службы, поскольку это может привести к дальнейшим катастрофическим проблемам, таким как потеря данных. Это означает, что обновления (приложение и система) будут остановлены и откат, если вы настроили его таким образом.

Примером использования системы здравоохранения в ваших интересах было бы иметь некоторый код, который оценивает функциональность службы и сообщает о ее здоровье на основе этого. Таким образом, когда кто-то меняет служебный код и обновляет обновление, функциональность службы оценивается, и если что-то не работает должным образом, сообщается о состоянии ошибки, которое останавливает обновление и откатывает его для вас. Этот оценочный код может быть даже в отдельной службе, называемой «сторожевой собакой», которая может быть такой же простой, как проверка одной из конечных точек вашей службы и обеспечение ответа в порядке.

Я настоятельно рекомендую внимательно прочитать документацию по модели работоспособности, чтобы понять, как все это работает, а затем немного экспериментировать, чтобы узнать, что работает для вашего конкретного проблемного домена. https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-health-introduction

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

  • Нет связанных вопросов^_^