Я выполняю PoC на Ocelot Gateway для использования в нашей архитектуре микросервисов.Я успешно использовал шлюз для выполнения всех задач маршрутизации до сих пор.
Он предоставляет службу QoS, которая хранит конфигурацию в ocelot.json для автоматического выключателя и прерывает цепь на время.
Конфигурации, заданные в моем файле ocelot.json , приведены ниже для определенного маршрута:
{
"DownstreamPathTemplate": "/api/classes/exception/{id}",
"DownstreamScheme": "http",
"UpstreamPathTemplate": "/classes/exception/{id}",
"ServiceName": "class-service",
"UpstreamHttpMethod": [ "Get" ],
"LoadBalancerOptions": {
"Type": "LeastConnection"
},
"QoSOptions": {
"ExceptionsAllowedBeforeBreaking": 2,
"DurationOfBreak": 10000,
"TimeoutValue": 3000
}
}
Теперь, это прекрасно работает для проблемы тайм-аута, она ломаетсясхема в течение 10 секунд, когда маршрут не отвечает в течение 3 секунд.
Но для случая исключения он не прерывает цепь, когда возникает исключение, возникающее в течение 2 раз при вызове маршрута.
Требуются ли еще конфигурации?
Я добавил пакет Nuget для Ocelot и Ocelot.Provider.Polly , а также добавил следующее в мой Startup.cs файл:
s.AddOcelot().AddPolly();
Пожалуйста, помогите мне через это.Я следовал [Документация Ocelot] https://ocelot.readthedocs.io/en/latest/features/qualityofservice.html, чтобы реализовать это