美文网首页
.Net Core微服务架构Polly熔断降级策略

.Net Core微服务架构Polly熔断降级策略

作者: 一个很普通的名字 | 来源:发表于2022-09-19 09:36 被阅读0次

    熔断机制(Circuit Breaker),也叫自动停盘机制,是指当股指波幅达到规定的熔断点时,交易所为控制风险采取的暂停交易措施。
    具体来说是对某一合约在达到涨跌停板之前,设置一个熔断价格,使合约买卖报价在一段时间内只能在这一价格范围内交易的机制。

    之所以叫“熔断”,是因为这一机制的原理和电路保险摊类似,一旦电压异常,保险丝会自动熔断以免电器受损。

    Polly是什么

    Polly是一个被.NET基金会认可的弹性和瞬态故障处理库,允许开发人员以流畅和线程安全的方式表达重试,断路器,超时,隔板隔离和降级等策略。以更友好的方式维护我们的程序。

    官方网址:www.thepollyproject.org

    开源地址:https://github.com/App-vNext/Polly

    弹性策略

    Polly提供多种策略:

    策略 适用范围 描述 效果
    重试(Retry 故障是短暂的,并且可能在短暂延迟后自我纠正。 “也许这只是昙花一现” 配置自动重试
    断路器(Circuit-breaker 当系统严重错误时,快速失败比让用户等待更好。 “如果它受伤就停止这样做” 当故障超过某个预先配置的阈值时,禁止执行
    阻塞断路器(Circuit-breaker 保护故障系统免于过载可以帮助它恢复。 “他太累了,让他休息一下” 当故障超过某个预先配置的阈值时,阻塞执行
    超时(Timeout 超过一定的等待,成功的结果是不可能的。 “别一直等下去了” 保证调用者不必等待超时。感觉与当前网关效果一致
    隔板隔离(Bulkhead Isolation 当进程出现故障,多个失败的请求很容易占满服务器资源(线程/CPU)。
    一个处于故障状态的下游系统,也会导致其上游系统故障。 “一个错误不应该沉没整艘船” 将严格管控故障进程,使其使用固定大小的资源池,隔离他们对其他进程的潜在影响
    缓存(Cache 一定比例的请求可能是相似的。 “你以前问过那个” 从缓存中提供已知的响应。
    当第一次读取的时候,将响应自动缓存起来。
    降级(FullBack 事情仍然会失败 ,你会做什么。 “看来还是得你来” 定义在失败时返回的替代值(或要执行的操作)。
    包装策略(PolicyWrap 不同的故障需要不同的策略 弹性意味着使用组合。 “一起保护好这个结果” 允许灵活组合上述任何策略

    引用Polly

    管理Nuget包,搜索Polly:

    图片.png

    或者高端一点:

    Install-Package Polly
    

    Polly基础使用

    (防止剧透,部分代码由UTF-16编码)

    重试策略:

    1.简单使用

    图片.png

    2.重试策略

    图片.png 图片.png 图片.png

    3.降级策略

    图片.png

    4.超时策略


    图片.png

    5.包装策略

    图片.png

    代码地址

    https://git.dev.tencent.com/HanBlog/HelloPolly.git

    原文地址

    若韩陈梦

    相关文章

      网友评论

          本文标题:.Net Core微服务架构Polly熔断降级策略

          本文链接:https://www.haomeiwen.com/subject/sjwmortx.html