在host.json中,我的Azure函数的配置不足,并且正在向EvenHub分批发送30000 msgs,但是我发现我的azure函数不会选择超过64的默认值。没有选择maxbtachsize值的任何特殊原因。
事件中心配置的单个事件中心的分区计数为25,单个TU的分区计数为15
"version": "2.0",
"extensions": {
"eventHubs": {
"batchCheckpointFrequency": 5,
"eventProcessorOptions": {
"maxBatchSize": 256,
"prefetchCount": 512
}
}
}
答案 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"
}
}