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