Просто любопытно, есть ли у кого-нибудь опыт работы с необработанными исключениями в Service Fabric и каковы передовые методы, связанные с ними. В основном интересует неисправное состояние служб. Восстанавливаются ли службы, если они находятся в неисправном состоянии? Или должна быть глобальная обработка исключений для необработанных исключений, если такая концепция вообще существует в SF. Я не нашел много по этой теме поиском.
Необработанные исключения Service Fabric и рекомендации
Ответы (2)
В моей компании мы создали код для повторного использования в соответствии с рекомендации по использованию ITransaction
, которые позволяют нам запускать любой произвольный код и дополнять его соответствующей обработкой исключений и политиками повторных попыток. В этой документации есть руководство о том, как различные типы исключений должны влиять на метод RunAsync
, а также как они должны влиять на методы, являющиеся частью удаленной конечной точки.
Как правило, обработка любых исключений, помимо того, что обсуждается в документации, зависит от вас. Что касается меня, я просто позволю исключению всплыть и позволю сервису выйти из строя, если это неожиданное исключение. Ожидаемые исключения всегда следует обрабатывать с помощью соответствующей политики повторных попыток.
Ваш вопрос довольно широкий, и ответ меняется в зависимости от типа микросервиса. Для начала, также получив представление об обширности этой темы, стоит взглянуть на мониторинг работоспособности Service Fabric и связанные подразделы. Как видите, существует множество вариантов конфигурации, и по моему опыту (я работаю архитектором Microsoft Azure) не существует универсального решения, универсального для всех. Единственной лучшей практикой является разработка управления исключениями, которое лучше всего подходит для вашего проекта, максимально используя политики работоспособности Fabric.