概念定义
Polly 是一个弹性的和瞬态故障处理及恢复的类库, 允许我们以非常顺畅和线程安全的方式来执诸如行重试, 断路, 超时, 故障恢复等策略, 其主要功能如下:
功能 1: 重试 (Retry)
功能 2: 断路器 (Circuit-Breaker)
功能 3: 超时检测 (Timeout)
功能 4: 缓存 (Cache) ??TODO
功能 5: 降级 (Fallback)
适用场景
Polly 在微服务中 主要用于跨服务调用时加上, Polly 虽好不要贪杯啊;
Socket 服务端升级, 那种必须需要重启关闭一会儿, 那么让客户端当连接不上的时候再重新连接; 报某个连接错误的时候重新连接;
好多地方都可以用, 以前没有系统学, 只用了一个重试
弹性策略: 是用于应对瞬态故障, 故障发生的瞬间, 服务是不可用的;
重试策略: 每隔一段时间重试几次
断路器策略: 熔断器测试 三种状态 OPEN CLOSE Half-OPEN
主动器策略:
超时 2 秒 我就当你故障;
舱壁隔离: 高并发时显示并发数量, 比如我这个东西同时只能跑三个, 感觉像定义了线程池里面的最大线程数
缓存: 不是频繁更新, 减少对服务的访问
特殊性策略: 包装策略 几种策略一起用, 执行顺序是从右向左;
回退和降级 (不会单独使用, 后背手段)
回退的现实举例子: 比如你到商场买一个白色衬衫, 结果没有白色的了直接给你一个黑色的;
它有四种状态:
CircuitState.Closed - 常态, 可执行 actions.
CircuitState.Open - 自动控制器已断开电路, 不允许执行 actions.
CircuitState.HalfOpen - 在自动断路时间到时, 从断开的状态复原. 可执行 actions, 后续的 action/s 或控制的完成, 会让状态转至 Open 或 Closed.
CircuitState.Isolated - 在电路开路的状态时手动 hold 住, 不允许执行 actions.
需要把那些模型跑一遍, 自己现在列出来;
学习地址
Polly 官网地址
https://github.com/App-vNext/Polly 当发生了某种故障或者异常后, 会用哪种方案处理故障
其它学习地址 https://www.cnblogs.com/edisonchou/p/9159644.html
来自为知笔记 (Wiz) https://www.wiz.cn/i/9ce2b800
Polly
来源: http://www.bubuko.com/infodetail-3385342.html