Azure Function to Azure SQL - Performance and Scaling



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

每小时有 200K 条消息击中主题。 我需要每小时将 200K 条消息写入 Azure SQL。 在处理过程中,我经常收到错误"数据库的请求限制为 60,已达到"。 我知道我已经达到了数据库连接的最大数量。 有没有办法阻止 Azure 增加 Azure 函数实例的数量? 共享 SQL 连接的最佳方式是什么?

任何其他 Azure 函数到 Azure SQL 性能提示?

谢谢

理查

没有明确定义的方法可以使用服务总线实现此目的。您可能想玩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 x 1 处理。这通常是将大量数据插入 SQL 表的非常有效的方法。

  2. 最大并发
  3. 数受事件中心分区数量的限制,因此你了解并发调用的硬限制。

不利的一面是,您将丢失一些服务总线功能,例如死信、自动重试等。

最新更新