Ocelot QoS не разрывает цепь, когда возникает n исключений - PullRequest
0 голосов
/ 02 июля 2019

Я выполняю 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, чтобы реализовать это

...