gpt4 book ai didi

c# - 限制/限制 serviceBus 队列以触发 ServiceBusTrigger 形式的消息

转载 作者:行者123 更新时间:2023-12-03 01:40:31 33 4
gpt4 key购买 nike

我有一个 ServiceBusQueue(SBQ),它获取大量消息负载。我有一个具有 accessRights(manage) 的 ServiceBusTrigger(SBT),它不断轮询来自 SBQ 的消息。

我面临的问题是:我的 SBT(一次 16 个实例)一次选取消息(单独 16 个消息)并创建对另一台服务器(假设 S1)的请求。如果SBT连续创建500-600个请求,则服务器S1停止响应。

我期待:我可以限制/限制从 SBQ 立即选取消息,以便间接限制发送请求。

请分享您的想法,我应该遵循什么设计。我无法在谷歌上搜索到确切的解决方案。

最佳答案

  1. 限制 maximum concurrent calls服务总线触发器。

    host.json 中,添加配置以限制并发性(即默认情况下一次发送 16 条消息,您已经看到了)。以v2函数为例。

    {
    "version": "2.0",
    "extensions": {
    "serviceBus": {
    "messageHandlerOptions": {
    "maxConcurrentCalls": 8
    }
    }
    }
    }
  2. 限制Function host instances count 。当主机横向扩展时,每个实例都有一个服务总线触发器,它可以同时读取多条消息,如上面设置的。

    如果触发器位于专用应用服务计划上,则实例的扩展会计为某个小值。消费计划功能,添加App设置WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT具有合理的值(value)(<=5)。当然我们可以将计数设置为1,以严格控制行为。

  3. 如果我们可以控制消息的发送方式,schedule the incoming messages帮助降低请求率。

  4. 使用static clients重用与服务器 S1 的连接。

关于c# - 限制/限制 serviceBus 队列以触发 ServiceBusTrigger 形式的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54214265/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com