只是好奇是否有人对Service Fabric中未处理的异常有经验以及围绕它们的最佳实践。主要是对服务的故障状态感到好奇。如果服务处于故障状态,服务是否会被回收?或者是否应该对未处理的异常进行全局异常处理,如果该概念甚至存在于SF中。我在搜索这个主题时没有找到太多。
答案 0 :(得分:0)
在我公司,我们在guidelines for using ITransaction
之后构建了一些可重复使用的代码,使我们可以运行任何任意代码,并使用适当的异常处理和重试策略对其进行包装。在该文档中,提供了有关各种类型的异常如何影响RunAsync
方法以及它们如何影响作为远程端点一部分的方法的指南。
通常,您可以决定如何处理文档中未讨论的任何异常。就我自己而言,我只是让异常冒出气泡,如果服务出现意外异常,就让服务失败。预期的异常应始终使用适当的重试策略进行处理。
答案 1 :(得分:-1)
您的问题非常广泛,答案会根据微服务的类型而变化。一旦开始,也要了解这个主题的大部分内容,请查看Service Fabric health monitoring文章和相关的子主题。正如您所看到的,有很多配置选择,根据我的经验(我是Microsoft Azure架构师),没有银弹,没有"一个尺寸适合所有"解。唯一的最佳做法是设计最适合您项目的异常管理,尽可能地利用Fabric健康策略。