目前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秒是可配置,請提出問題。