我在Azure API管理中有一个具有多项操作的API。其中一个特定的操作应具有1个限制执行并发。我试图通过以下后端策略来限制并行执行,如Microsoft Docs所述。
<backend>
<limit-concurrency key="general" max-count="1">
<forward-request timeout="120" />
</limit-concurrency>
</backend>
不幸的是,此限制的行为是我可以同时执行两次操作。第三次并行执行将产生429状态代码。
有人知道为什么最大数量为1导致最大数量为2?
答案 0 :(得分:0)
使用并发控制,我们可以确保后端系统的并发呼叫不超过2个,并且所有之后的呼叫都排队到最大限制,并在2个并发呼叫之一完成后立即进行处理。确保不要在重试和空闲时间浪费资源。使用并发控件很简单,这是以下策略:
<limit-concurrency key="general" max-count="1" timeout="120" max-queue-length="100">
<forward-request timeout="120" />
</limit-concurrency>
有关更多详细信息,您可以参考此article。