【问题标题】:Slow API execution in Azure DataFactoryAzure 数据工厂中的 API 执行缓慢
【发布时间】:2021-01-05 18:54:37
【问题描述】:

我在 Azure Logic Apps 中有一个消耗一些 API 服务的流程,在 AzureLogicApps 中执行非常快,但是在 Azure DataFactory 中执行相同的流程时,流程变得慢得多,可能是什么原因?

ADF 中的进程在 ForEach 循环中运行

【问题讨论】:

    标签: azure-data-factory azure-logic-apps


    【解决方案1】:

    对于这个问题,可能是数据工厂的for each循环导致的。在为每个循环请求 api 时,它可能会快速完成前几次。但是当循环多次时,完成每个请求会花费更多的时间。

    您似乎在 azure api 管理中配置了 api。这个问题的根本原因是你原来的 api 可以在 1 秒内处理一个请求(只是举例)。但是每个循环(并行)都会发送许多请求来请求api。所以有些请求会被排队。您可以通过启用“Sequential”来设置每个循环以逐个执行请求,如下图所示。

    这样配置后,请求会被一个一个执行。他们每个人都不会花费太多时间,但我认为总时间可能不会减少

    或者你应该提高你的 api 的负载(如果可能的话)以允许同时执行更多的请求。

    【讨论】:

    • 非常感谢您的解释,让我好奇的是,在LogicApp中执行速度比在ADF中快得多,所以我想知道api和ADF是否必须在同一个资源组中?.分析 ADF 中的执行我发现 api 比 PUT 方法慢
    • @willysepulveda 我不认为将 APIM 和 ADF 放在同一个资源组中会更好。如果将它们放在同一区域可能会更快(但影响也很小)。顺便说一句,您是否也将 HTTP 操作放在了 For each loop in logic app 中?
    • 两个服务都在同一个位置,关于您的问题:您是否还将 HTTP 操作设置为 For each loop in the logic app?,答案是肯定的
    • @willysepulveda 您可以转到逻辑应用并单击“For each”操作的... 按钮,然后切换Concurrency Control。然后测试它是否也会在逻辑应用程序中执行缓慢。
    • @Huty Sehcn 逻辑应用中的 foreach 配置为按顺序运行
    猜你喜欢
    • 2020-08-15
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 2022-08-09
    相关资源
    最近更新 更多