Polly 弹性策略指南

空扰寡人 提交于 2020-01-15 09:35:58

Polly 提供了多种弹性策略:

PolicyPremiseAkaHow does the policy mitigate?
Retry 重试 (policy family) deep 有相当比例的错误是暂时性的,可以在很短的时间内自我恢复。 "Maybe it's just a blip" 也许只是抖动一下 允许配置自动化重试。
Circuit-breaker 熔断 (policy family) deep 当系统很严重吃力的时候快速失败比让用户或调用者等待更好。保证系统从过载的状态中恢复。 "Stop doing it if it hurts" 痛了就放手 "Give that system a break" 做个了断吧 可以预定义阈值来触发熔断。
Timeout 超时 deep 即使等待也不太可能返回一个成功的结果 "Don't wait forever" 不要一直等下去 确保调用者在超时之后就不用继续等待了。
Bulkhead Isolation 隔离舱 deep 当处理失败时,多个失败的救援会淹没主机上的其他资源(如 threads/CPU)。一个失败下游的系统应该能够"backed-up" 失败的上游。这两种失败的处理都会影响更多系统。 "One fault shouldn't sink the whole ship" 一个船舱漏水不应该沉掉整艘船 将动作限制在一个固定的资源范围内,隔离它不会影响其他人。
Cache 缓存 deep 有相当比例的请求都相似 "You've asked that one before" 你之前问过了同样的问题 从缓存中提供响应。当首次响应时自动化存储响应。
Fallback 撤退 deep 当失败一时半会无法恢复,应该有个后备的撤退计划。 "Degrade gracefully" 优雅地降级 当失败时返回一个替代的值,或者其他可以执行的动作
PolicyWrap 策略包装 deep 不同的失败需要不同的策略,弹性意味着可以将它们组合起来使用。 "Defence in depth" 深度防御 允许任意组合以上的策略


作者:tairan
链接:https://www.jianshu.com/p/98707fde8061
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!