Service Fabric未处理异常及最佳实践

11

想知道是否有人在Service Fabric中遇到未处理的异常,并且周围的最佳实践是什么。主要关注服务的故障状态。如果服务处于故障状态,它们会被回收吗?或者,在SF中是否存在全局异常处理来处理未处理的异常。通过搜索,我没有找到太多这方面的信息。

2个回答

0
在我的公司,我们已经按照使用 ITransaction 的指南编写了一些可重用的代码,这使得我们可以运行任意代码,并将其与适当的异常处理和重试策略包装在一起。在该文档中,有关于各种类型异常如何影响RunAsync方法以及其如何影响远程调用端点中的方法的指导。
通常,除了文档中讨论的异常处理之外,任何其他异常的处理都由您来决定。对于我自己而言,如果是意外的异常,我只会让它上报并使服务失败。预期的异常应始终使用适当的重试策略进行处理。

-1

你的问题比较广泛,答案取决于微服务的类型。一个好的起点,也可以了解这个主题的广度,是查看Service Fabric health monitoring文章和相关子主题。正如你所看到的,有很多配置选择,在我的经验中(我是微软Azure架构师),没有银弹,也没有“一刀切”的解决方案。唯一的最佳实践是设计异常管理,尽可能利用Fabric健康策略来为您的项目提供最佳服务。


可靠服务的错误状态(我应该提到)并不是一个很广泛的问题。不同的服务处理错误状态的方式也不同。我只是好奇无状态可靠服务如何处理错误状态。似乎在运行异步操作期间发生任何导致错误状态的故障都会导致 SF 最终回收服务。虽然关于这个话题真的没有太多的讨论。 - g.t.w.d
@g.t.w.d 我相信这个主题很少被讨论的原因是因为有关于两个交叉领域的大量资料:(1) Service Fabric 健康和 (2) 可靠服务状态。通过在服务中使用 System.Fabric.Health,这两个领域可以相互交叉,使得 Fabric 健康监视器能够对服务状态管理引发的 Fabric 事件进行响应。 - Pino De Francesco

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接