gpt4 book ai didi

azure - Azure Functions 事件中心检查点是否适用于多个实例?

转载 作者:行者123 更新时间:2023-12-03 00:39:13 25 4
gpt4 key购买 nike

我对扩展 Azure Functions 和事件中心触发器有一些疑问。我知道 AF 应用程序在某处存储检查点编号(我认为是 Azure 存储),但我想知道当 AF 扩展或更改时这适用于什么(亲和性)。

  1. 如果我有一个包含消息的现有事件中心并重新部署 AF 应用程序,它会从新的检查点从头重新启动,还是会从中断处开始?似乎应该以某种方式从该 AF 应用程序的最后一个检查点开始。
  2. 如果我更改 AF 应用中使用事件中心触发器的函数名称,它是否会保留相同的检查点或重新开始?
  3. 如果我停止/启动 AF 应用程序,它会失去其位置吗?似乎不应该,因为它是存储在外部的,但我不知道它们如何相互映射。
  4. 当 AF 扩展时,多个实例是否都共享相同的检查点,或者后续实例是否从头开始并拥有自己的检查点?后者似乎不太可能。据我所知,为每个 AF 应用实例创建了一个新的 EventProcessorHost,但它们都共享相同的检查点吗?
  5. 扩展时,新的 AF 应用实例是从现有/初始实例的检查点开始,还是新的 EPH 从头开始​​?

如果重要的话,我使用 C# DLL 和 VS2015 进行开发,使用 VSTS 进行构建/部署。

最佳答案

事件中心检查点按消费者组的每个分区保存。因此,如果您的集线器有 2 个分区和 3 个消费者组,它将有 6 个检查点。

您可以为函数触发器显式定义消费者组:

EventHubTrigger("myhub", ConsumerGroup = "mygroup")

否则将使用默认值$Default。所以,对于你的问题:

  1. 如果给定消费者组存在现有检查点,它将从这些检查点重新启动。

  2. 函数名称并不重要,它基于消费者组。

  3. 重新启动后,应用将从检查点启动。

  4. 多个实例都共享相同的检查点。工作原理:每个分区将被其中一个实例锁定,因此该分区中的事件在任何给定时间都只能由单个实例处理。同一个实例会将相应的检查点更新为新的偏移量。

  5. 一旦成功锁定相应分区,新实例就会从现有检查点启动。

请注意,分区数量限制了可以并行处理事件的实例数量(对于一个消费者组)。

关于azure - Azure Functions 事件中心检查点是否适用于多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46425532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com