Host.json中用于Azure函数的MaxBatchSize不起作用

时间:2019-12-24 22:55:07

标签: azure azure-functions azure-eventhub

在host.json中,我的Azure函数的配置不足,并且正在向EvenHub分批发送30000 msgs,但是我发现我的azure函数不会选择超过64的默认值。没有选择maxbtachsize值的任何特殊原因。

事件中心配置的单个事件中心的分区计数为25,单个TU的分区计数为15

"version": "2.0",
"extensions": {
    "eventHubs": {
      "batchCheckpointFrequency": 5,
      "eventProcessorOptions": {
        "maxBatchSize": 256,
        "prefetchCount": 512
      }
    }
}

2 个答案:

答案 0 :(得分:0)

您不应期望事件以maxBatchSize所配置的批处理大小精确地传递。 maxBatchSize定义了最大批处理大小,因此事件可以在1到maxBatchSize批处理大小中出现。

如果由于单个主机无法处理太多而导致积压,则Azure功能应通过添加更多主机来扩展。当新主机变为活动状态时,它们应接管某些分区,从而提高读取和处理速率。有关更多详细信息,请参见此处的缩放部分-https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-event-hubs

答案 1 :(得分:0)

"enableReceiverRuntimeMetric": true,

如果事件可用,则为您提供 maxBatchSize 计数。

"eventHubs": {
            "batchCheckpointFrequency": 5,
            "eventProcessorOptions": {
                "enableReceiverRuntimeMetric": true,
                "invokeProcessorAfterReceiveTimeout": false,
                "maxBatchSize": 256,
                "prefetchCount": 512,
                "receiveTimeout": "00:05:00"
            }
        }