【问题标题】:How one instance Azure Function handle multiple partition event hub trigger一个实例 Azure Function 如何处理多个分区事件中心触发器
【发布时间】:2020-03-10 18:37:18
【问题描述】:

我有一个使用事件中心触发器在应用服务计划上托管的 Azure 函数。事件中心有 4 个分区。

我的问题是,如果函数只有一个实例,函数如何处理来自 4 个分区的事件?这个实例函数是否获取所有 4 个分区的租约,并轮询逐个分区处理?

【问题讨论】:

    标签: azure-functions azure-eventhub


    【解决方案1】:

    如果你想知道单个实例如何处理多个分区,azure 函数文档有一个关于它的示例:Trigger - scaling

    主要思想是当你的函数第一次启用时,只有一个函数实例,函数有一个 EventProcessorHost 实例,它持有所有十个分区的租约。此实例将从分区 0-9 读取事件。

    并列出了三种情况不需要新的函数实例增加了一个额外的函数实例又增加了N个函数实例

    您的要求是一个实例,在文档中它说该实例将在功能缩放逻辑生效之前处理所有事件。

    【讨论】:

    • 谢谢乔治。我阅读了您分享的文档,仍然对“处理所有事件”逻辑有疑问。说,现在我有2个分区,分区0有两个2批次的事件,p0_e0,p0_e1,分区2有1批次的事件:p1_e0。 azure 函数能否保证 p0_e0 和 p1_e0 在处理 p0_e1 之前被处理?也就是说,azure 函数会以广度优先模式处理事件吗? (这里的宽度代表分区数)。
    • @Youxu,这里有一个blog,该功能默认会并发处理消息,但是您可以将maxBatchSize配置为1以获得完美的订单。 event hub host.json settings
    • @Youxu,这个问题有更新吗?如果这可以帮助你,请接受它作为答案。
    猜你喜欢
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    相关资源
    最近更新 更多