基于EventHub传入消息的Azure AppService自动缩放

时间:2018-09-11 16:05:14

标签: azure azure-web-sites azure-app-service-plans

我有一个.Net应用程序托管为Azure应用程序服务(Web作业),它从一个事件中心读取并对这些消息执行一些操作。此应用程序不受CPU或内存的限制,而是我希望根据事件中心的传入消息量来进行扩展。

查看“事件中心”的“传入和传出消息”指标,我确定该应用程序每个实例每分钟可以处理大约12,000条消息。

但是我不知道如何将其设置为自动缩放设置。鉴于上述情况,我尝试将其设置为在传入消息大于10000时将实例计数增加1。但是,当事件集线器的“度量”下看到的传入消息约为45000并且实例计数为3时,什么也不会发生。扩大规模,但事实并非如此。为什么?

这是我的体重秤设置的样子:

{
    "scaleAction": {
        "direction": "Increase",
        "type": "ChangeCount",
        "value": "1",
        "cooldown": "PT5M"
    },
    "metricTrigger": {
        "metricName": "EHINMSGS",
        "metricNamespace": "",
        "metricResourceUri": "my eventhubs",
        "operator": "GreaterThan",
        "statistic": "Average",
        "threshold": 10000,
        "timeAggregation": "Average",
        "timeGrain": "PT1M",
        "timeWindow": "PT5M"
    }
},
{
    "scaleAction": {
        "direction": "Decrease",
        "type": "ChangeCount",
        "value": "1",
        "cooldown": "PT5M"
    },
    "metricTrigger": {
        "metricName": "EHINMSGS",
        "metricNamespace": "",
        "metricResourceUri": "my eventhubs",
        "operator": "LessThan",
        "statistic": "Average",
        "threshold": 1000,
        "timeAggregation": "Average",
        "timeGrain": "PT1M",
        "timeWindow": "PT5M"
    }
}

1 个答案:

答案 0 :(得分:0)

我不确定这是否是答案,但是对于Azure Function,可以并行运行的函数实例数量与事件中心具有分区的数量一样。因此,例如,如果事件中心有两个分区,则一次只能有两个作业。

您可以在此处了解更多信息:https://medium.com/@jeffhollan/in-order-event-processing-with-azure-functions-bb661eb55428