Настройка ограничения параллелизма в Azure API Management - PullRequest
0 голосов
/ 20 марта 2019

У меня есть API, который доступен только через управление API. Когда API вызывается более 100 раз одновременно, Api начинает давать сбой. Я наткнулся на этот документ, который объясняет, что нужно сделать.

https://docs.microsoft.com/en-us/azure/api-management/api-management-advanced-policies

Я вставил приведенную ниже политику, как указано в документе (на уровне продукта в управлении API)

<policies>
  <inbound>…</inbound>
  <backend>
    <limit-concurrency key="someConstantId" max-count="3">
      <forward-request timeout="120"/>
    <limit-concurrency/>
  </backend>
  <outbound>…</outbound>
</policies>

но при попытке сохранить я получаю сообщение об ошибке

One or more fields contain incorrect values:
The 'limit-concurrency' start tag on line 43 position 14 does not match the end tag of 'backend'. Line 46, position 7.

Затем я изменил политику на

   <policies>
      <inbound>…</inbound>
      <backend>
        <limit-concurrency key="someConstantId" max-count="3"/>
      </backend>
      <outbound>…</outbound>
    </policies>

Это спасло Хорошо, но не оказало влияния на решение моей проблемы параллелизма

Что я делаю не так?

1 Ответ

2 голосов
/ 20 марта 2019

Я думаю, что конечный тег неверен:

<limit-concurrency key="someConstantId" max-count="3">
      <forward-request timeout="120"/>
<limit-concurrency/>

Я думаю, это должно быть:

<limit-concurrency key="someConstantId" max-count="3">
      <forward-request timeout="120"/>
</limit-concurrency>
...