Звучит так, как будто вы злоупотребляете моделью здоровья. Состояние состояния ошибки: Предполагается, что прекратите прокатное обновление. Если вы просто очистите состояния работоспособности ошибок до начала обновления, тогда в действительности нет смысла сообщать о состоянии ошибки.
Теперь проблема заключается в том, что любое событие «Ошибка», зарегистрированное любым или всеми экземплярами, при выполнении обновления приложения, первый экземпляр обновляется (отчеты также очищаются), но поскольку другие два все еще находятся в состоянии ошибки, SF откатывает обновление.
Да, это важная особенность Сервисной ткани. Система делает именно то, что она должна делать: она откатывает ваше обновление, потому что вы сообщили об ошибке.
С точки зрения сервиса Fabric, состояние ошибки достаточно серьезное, что система не коснется вашей службы, поскольку это может привести к дальнейшим катастрофическим проблемам, таким как потеря данных. Это означает, что обновления (приложение и система) будут остановлены и откат, если вы настроили его таким образом.
Примером использования системы здравоохранения в ваших интересах было бы иметь некоторый код, который оценивает функциональность службы и сообщает о ее здоровье на основе этого. Таким образом, когда кто-то меняет служебный код и обновляет обновление, функциональность службы оценивается, и если что-то не работает должным образом, сообщается о состоянии ошибки, которое останавливает обновление и откатывает его для вас. Этот оценочный код может быть даже в отдельной службе, называемой «сторожевой собакой», которая может быть такой же простой, как проверка одной из конечных точек вашей службы и обеспечение ответа в порядке.
Я настоятельно рекомендую внимательно прочитать документацию по модели работоспособности, чтобы понять, как все это работает, а затем немного экспериментировать, чтобы узнать, что работает для вашего конкретного проблемного домена. https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-health-introduction
Ваш вопрос непонятен. Что вы подразумеваете под «Я очищаю отчеты о начале обновления приложения»? И что именно вы делаете, когда говорите «обновление»? – A3006
Я очищаю пользовательские события работоспособности, которые сообщаются службой при обновлении приложения, например обновление версии конфигурации. –