Service Fabric未处理的异常和最佳实践
本文关键字:最佳 异常 Fabric 未处理 Service | 更新日期: 2023-09-27 17:59:28
只是想知道是否有人在Service Fabric中有未处理异常的经验,以及围绕这些异常的最佳实践是什么。主要是对服务的故障状态感到好奇。如果服务处于故障状态,它们会被回收吗?或者,如果SF中存在这种概念,那么是否应该对未处理的异常进行全局异常处理。我在搜索中找不到太多关于这个话题的内容。
在我的公司,我们按照ITransaction
的使用指南构建了一些可重复使用的代码,使我们能够运行任何任意代码,并用适当的异常处理和重试策略将其封装起来。在该文档中,有关于各种类型的异常应如何影响RunAsync
方法的指导,以及它们应如何影响作为远程处理端点一部分的方法。
一般来说,文档中讨论之外的任何异常的处理都由您决定。就我自己而言,我只会让异常冒出来,如果是意外的异常,就让服务失败。应始终使用适当的重试策略来处理预期的异常。
您的问题很宽泛,答案会根据微服务的类型而变化。一个很好的起点,也是了解这个主题的广泛性,就是查看ServiceFabric健康监测文章和相关的子主题。正如你所看到的,有很多配置选择,根据我的经验(我是一名Microsoft Azure架构师),没有灵丹妙药,也没有"一刀切"的解决方案。唯一的最佳实践是设计为您的项目提供最佳服务的异常管理,尽可能利用Fabric运行状况策略。