Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果Azure Function应用在消费计划中扩展到0,它如何侦听来自Event Hub的传入事件?_Azure_Azure Functions_Azure Eventhub_Azure Function App_Event Processor Host - Fatal编程技术网

如果Azure Function应用在消费计划中扩展到0,它如何侦听来自Event Hub的传入事件?

如果Azure Function应用在消费计划中扩展到0,它如何侦听来自Event Hub的传入事件?,azure,azure-functions,azure-eventhub,azure-function-app,event-processor-host,Azure,Azure Functions,Azure Eventhub,Azure Function App,Event Processor Host,假设我在消费计划中有一个Azure函数应用程序,正在Azure事件中心上侦听。根据文档,如果没有传入事件,函数应用程序实例的数量可以降到0。据我所知,每个函数应用程序实例还实例化了一个事件处理器主机,该主机正在侦听事件中心的分区。但如果实例数为0,那么谁在侦听事件中心以确定是否必须处理消息?当函数的实例数为0时,是否存在事件处理器主机?以下是我到目前为止关于Azure功能+Azure事件中心的(不完整)图片,我想完成: 在上述文档中,我还了解了scale控制器,它显然在需要时添加了新的函数主机

假设我在消费计划中有一个Azure函数应用程序,正在Azure事件中心上侦听。根据文档,如果没有传入事件,函数应用程序实例的数量可以降到0。据我所知,每个函数应用程序实例还实例化了一个事件处理器主机,该主机正在侦听事件中心的分区。但如果实例数为0,那么谁在侦听事件中心以确定是否必须处理消息?当函数的实例数为0时,是否存在事件处理器主机?以下是我到目前为止关于Azure功能+Azure事件中心的(不完整)图片,我想完成:

在上述文档中,我还了解了scale控制器,它显然在需要时添加了新的函数主机实例。这是否意味着缩放控制器也必须在事件中心上侦听?缩放控制器位于何处,它是我可以在Azure中创建的功能应用程序资源的一部分,还是缩放控制器托管在Azure的独立部分,与我的功能应用程序的存在无关


编辑:根据答案采用图像。

这是Azure上托管函数运行时为您所做的。它为您侦听事件中心(或服务总线,或其他受支持的触发器源),您无需为此计算付费。一旦它检测到新消息,它将启动一个或多个功能实例,此时只有计费开始


如果您在其他地方运行功能,例如在k8s群集中,您必须自己托管scale controller并使其始终运行。

“当功能的实例数为0时,是否存在事件处理器主机?”是。必须有东西一直在监听消息,才能知道是否应该启动某个功能。为了学究式,秤控制器不使用
EventProcessorHost
。它使用
EventHubClient
查询事件中心的分区,并将其与现有的检查点进行比较,以了解事件积压的深度。感谢您的回答。我已经采用了图形化的可视化,你能检查一下我现在的理解是否正确吗?不能给出一个权威性的答案,但从概念上看是正确的。我认为有一些关于这方面的讨论,他们描述了底层架构,但现在找不到