azure - 我可以运行一个 Azure 函数的多个实例来监听同一个队列吗
问题描述
背景:
我最近遇到了一个问题,我的函数无法处理负载并且队列消息正在建立。从长远来看,我正在查看代码以找出瓶颈所在,但从短期来看,我需要解决这个问题。
问题:
我可以添加同一个 azure 函数的多个实例(即使它是重命名 myjobrunner1、myjobrunner2)等都监听同一个队列?这对我的情况有帮助吗?
一些警告:
高级计划看起来不错,但我目前无法在生产中测试预览。
添加专用 AppService 是一种选择,但它是一个长期修复。我现在遇到了麻烦。
代码修复正在进行中,以更好地处理负载并提高性能,但外部服务阻碍它们的事实是一个因素。
解决方案
我是如何解决问题的。
我添加了一个额外的队列和逻辑来拆分两个队列之间的消息。然后,我创建了一个指向第二个队列的函数(1 和 2)的新实例。我最初认为队列的工作原理是只允许提取一份消息副本。然后没有其他服务可以读取该消息。我的测试似乎不是这种情况。
运行两个函数,每个函数都使用最大批次数解决了这个问题。在我们可以有效地查看更多代码增强功能之前,我可以继续这种模式。但是我们的瓶颈似乎是 httpclient 实例(我不能将它们作为静态运行并且需要进行重大更改)和一些可以优化的数据库调用。
如果其他人有其他建议,请添加。当高级计划发布时,我会尝试,但在那之前我将不得不坚持这个解决方案。
推荐阅读
- android - 在库中使用 Kotlin
- django - Coreapi 字段在招摇中显示错误的名称(数据)
- jmeter - 控制 Jmeter 中的特定代码块以停止和启动新线程?
- java - 捕获异常,重新抛出断言
- linkedin - 无法通过api获取linkedin公司页面的视频帖子
- angular - 将哈希添加到 css 文件名
- labview - Labview VISA 超时,中止问题
- visual-studio - Deploying Azure Function Slot from Visual Studio deploys Production
- amazon-web-services - AWS 使用 DynamoDB Lambda 配置 Kinesis Stream
- ios - 隐藏状态 bas 的约束警告