snaildev

原文地址:https://www.cnblogs.com/loogn/p/9007823.html

目前Ocelot支持一种QoS功能。 如果您希望在请求向下游服务时使用断路,则可以在ReRoute中进行设置。 这个功能使用了一个名为Polly的.NET库,这个库很棒,在这里可以找到它。

添加如下配置块到一个ReRoute配置中。

"QoSOptions": {
    "ExceptionsAllowedBeforeBreaking":3,
    "DurationOfBreak":5,
    "TimeoutValue":5000
}

为了实现这个规则,你必须设置一个大于0的数字给ExceptionsAllowedBeforeBreaking。DurationOfBreak是断路器跳闸后保持断开的时间。TimeoutValue表示如果请求超过5秒钟,它将自动超时。

你可以单独设置TimeoutValue选项,而不设置ExceptionsAllowedBeforeBreaking 和DurationOfBreak 。

"QoSOptions": {
    "TimeoutValue":5000
}

单独设置另外两个选项其中之一是没有意义的,因为他们两个相互影响。

如果您不添加QoS部分,QoS将不会被使用,但Ocelot默认将所有下游请求的超时时间设置为90秒。 如果有人需要这个90秒是可配置,请提出问题。

分类:

技术点:

相关文章: