Установка ограничения параллелизма в управлении Azure API

#azure #api #concurrency #policy #azure-api-management

#azure #API #параллелизм #политика #azure-api-management

Вопрос:

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

https://learn.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>
  

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

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

Ответ №1:

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

 <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>