Azure functions Azure EventHub&;函数最小异常
我们在我们的消费计划功能应用程序上看到异常奇怪的行为,请注意我们反复看到的以下异常:Azure functions Azure EventHub&;函数最小异常,azure-functions,azure-eventhub,Azure Functions,Azure Eventhub,我们在我们的消费计划功能应用程序上看到异常奇怪的行为,请注意我们反复看到的以下异常: Microsoft.Azure.EventHubs.receiveDisconnectedException(创建了具有更高纪元“2”的新接收器,因此当前具有纪元“1”的接收器正在断开连接。) System.Net.WebException(引发了类型为“Microsoft.ServiceBus.Messaging.LeaseLosteException”的异常。) 每当我们强调功能时,我们都会遇到这些例外
(创建了具有更高纪元“2”的新接收器,因此当前具有纪元“1”的接收器正在断开连接。)Microsoft.Azure.EventHubs.receiveDisconnectedException
(引发了类型为“Microsoft.ServiceBus.Messaging.LeaseLosteException”的异常。)System.Net.WebException
Microsoft.Azure.EventHubs.receiveDisconnectedException
(创建了具有更高纪元“2”的新接收器,因此当前具有纪元“1”的接收器正在断开连接。)Microsoft.WindowsAzure.Storage.StorageException
(指定的租约ID与blob的租约ID不匹配。)System.ArgumentOutOfRangeException
(忽略偏移量为1184072/序列号为1038的过期检查点,因为..)- 解释一下到底是怎么回事
- 请帮助我抑制这些错误,如果它们不是真正的“真实”错误,并且它们只是管理事物的主机
这些异常非常烦人,因为它使得实际看到真正未处理的异常非常困难。这些是由于函数应用程序(主机进程)中的函数动态扩展/插入而产生的虚假错误,您可以忽略它们 可以理解的是,它们出现在您的日志中这一事实令人震惊,我们已经开始了一些工作来抑制一些错误(请参阅)。这是随版本发布的,您应该将其视为警告。如果它们仍然显示为错误,请谅解
关于您为什么会看到这些异常的其他背景信息 让我们从一些关于EventHub伸缩工作原理的初步介绍开始,如本文所述: 1。Microsoft.ServiceBus.Messaging.LeaseLosteException
每次扩展操作成功时,EventHub都会在成功获得分区租约的
EventProcessorHosts
组(1..N)中重新分配分区租约,其中N是EventHub的分区数。例如,如果您仅从函数_0开始,并且它设法在所有10个分区上至少获取一个,那么当我们扩展到函数_1并且EventHub决定在两个函数之间均匀分布消息时,函数_0将丢失对其中5个分区的租约。此行为解释了引发您看到的类型为“Microsoft.ServiceBus.Messaging.leaselstexception”的异常
2。Microsoft.Azure.EventHubs.ReceiverDisconnectedException
此外,Azure函数还扩展到>N实例,因此将有一组N+1…M,其中M是无法在任何分区上获得租约的扩展实例总数。这样做的副作用是,始终会有一个EPH随时准备快速获取丢失的租约,以保持管道继续运行。这就解释了创建了具有更高历元“2”的新接收器,因此当前具有历元“1”的接收器断开连接。
如您所见。同样,您只在执行功能时才需要付费,因此这里存在一些过度设置的事实不会影响您的计费。与往常一样,这是一个极好的回答,非常感谢。。我在前面阅读了你在这个答案中链接到的帖子,我只想确认这两个例外本身(在正常操作公差下)会导致事件的重复读取。问题:谢谢你提交这个问题。要回答您关于重复消息的问题,是的,LeaseLosteException可能会导致EventProcessorHost错过检查点,这反过来会导致再次检索整个批并将其传递到另一个函数实例。