原文地址:https://www.cnblogs.com/loogn/p/9007823.html
目前Ocelot支持一种QoS功能。 如果您希望在请求向下游服务时使用断路,则可以在ReRoute中进行设置。 这个功能使用了一个名为Polly的.NET库,这个库很棒,在这里可以找到它。
添加如下配置块到一个ReRoute配置中。
1
2
3
4
5
|
"QoSOptions" : { "ExceptionsAllowedBeforeBreaking" :3, "DurationOfBreak" :5, "TimeoutValue" :5000 } |
为了实现这个规则,你必须设置一个大于0的数字给ExceptionsAllowedBeforeBreaking。DurationOfBreak是断路器跳闸后保持断开的时间。TimeoutValue表示如果请求超过5秒钟,它将自动超时。
你可以单独设置TimeoutValue选项,而不设置ExceptionsAllowedBeforeBreaking 和DurationOfBreak 。
1
2
3
|
"QoSOptions" : { "TimeoutValue" :5000 } |
单独设置另外两个选项其中之一是没有意义的,因为他们两个相互影响。
如果您不添加QoS部分,QoS将不会被使用,但Ocelot默认将所有下游请求的超时时间设置为90秒。 如果有人需要这个90秒是可配置,请提出问题。