每当我们谈论弹性策略时,我们主要指的是弹性模式的组合。换句话说,为了解决您的问题,您需要链接一些 Polly 策略(以正确的顺序)才能解决它。(在 Polly 术语中,它被称为“包裹”)
首先让我们收集模式:
我建议使用“暂时不可用/无法访问”这一措辞,因为这意味着您希望使用弹性策略来克服暂时性故障。因此,为了检测服务不可用,您可以使用断路器。它的工作方式如下:
该组件充当代理并检查请求的结果(如果有)。在发生预定次数的连续/后续故障后,它将在给定时间段内阻止与下游系统的通信。当该时间段过去后,您将可以尝试一下,看看新请求是否成功或失败。
这里值得一提的是,BrokenCircuitException每当代理阻止传出请求时,Polly 就会抛出 a ,以满足快速失败原则。
每当您要缓存出站请求的结果时,您应该考虑以下问题:
通过查看这些问题,您可以决定是否使用缓存。
这个简单的模式使您能够使用某些东西作为替代品。因此,在您的情况下,每当服务器不可用时,就会回退到缓存。
现在让我们把它们放在一起。
这里的顺序很重要,因为 Polly 使用升级来链接策略。当内部策略失败时,它会将其升级为外部策略。
在您的情况下,顺序如下(从外到内): 后备>>缓存>>断路器
当然,您甚至可以通过使用超时和重试来增强这一点。在这种情况下,顺序将如下所示: 回退>>缓存>>重试>>断路器>>超时
有关 PolicyWrap 的更多详细信息,请阅读他们的 wiki 页面。
| 归档时间: |
|
| 查看次数: |
637 次 |
| 最近记录: |