【问题标题】:Azure Function to Azure SQL - Performance and ScalingAzure 函数到 Azure SQL - 性能和扩展
【发布时间】:2018-08-09 21:24:38
【问题描述】:

我有一个写入 Azure SQL 的 Azure 函数。它当前从主题中读取,但可以更改为从队列中读取。是否有从主题或队列中读取的偏好?

每小时有 20 万条消息触及该主题。我需要将每小时 20 万条消息写入 Azure SQL。在处理过程中,我经常收到错误“数据库的请求限制为 60 并且已达到。”。我了解我已达到最大数据库连接数。有没有办法阻止 Azure 扩大 Azure Function 实例的数量?共享 SQL 连接的最佳方式是什么?

还有其他 Azure 函数到 Azure SQL 的性能提示吗?

谢谢,

理查德

【问题讨论】:

    标签: sql azure azure-sql-database azure-functions


    【解决方案1】:

    使用服务总线没有明确定义的方法来实现这一点。您可能想玩host.json 文件并更改maxConcurrentCalls 参数:

    "serviceBus": {
      // The maximum number of concurrent calls to the callback the message
      // pump should initiate. The default is 16.
      "maxConcurrentCalls": XYZ,
    }
    

    但它只控制单个实例的并行调用量。

    我建议您查看事件中心。您至少获得 2 项奖金:

    1. 您可以切换到成批的事件,而不是 1 对 1 的处理。这通常是向 SQL 表中插入大量数据的一种非常有效的方法。

    2. 最大并发受事件中心分区数量的限制,因此您知道并发调用的硬性限制。

    不利的一面是,您会失去一些 Service Bus 功能,例如死字、自动重试等。

    【讨论】:

    • 谢谢你的建议,米哈伊尔。具有分区功能的事件中心运行起来非常棒!
    猜你喜欢
    • 1970-01-01
    • 2018-01-27
    • 2021-12-14
    • 2017-11-21
    • 2011-06-29
    • 1970-01-01
    • 2015-11-11
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多