azure - Azure 事件中心 - IEventProcessor 的 CloseAsync 中的 LeaseLostException
问题描述
CloseAsync(PartitionContext, CloseReason)
我们的内部方法有以下实现IEventProcessor
:
public async Task CloseAsync(PartitionContext context, CloseReason reason)
{
// log reason and partition id
if (reason == CloseReason.Shutdown)
{
// log shutdown event
await context.CheckpointAsync();
}
}
我们知道 LeaseLost 异常在这个方法中很好,我们看到了这些线程:
Azure EventHub 和函数 LeaseLostException
是什么导致 Azure 事件中心 ReceiverDisconnectedException/LeaseLostException?
当处理器关闭时,它曾经在某些调用中失败,但在其他调用中成功。最近,我们注意到它在所有调用CloseAsync()
when the reason isCloseReason.Shutdown
并且总是在完全相同的 exception时始终失败LeaseLostException
。这是完整的异常消息和堆栈跟踪:
消息:“指定的租约 ID 与 blob 的租约 ID 不匹配。”
堆栈跟踪:
在 Microsoft.Azure.EventHubs.Processor.AzureStorageCheckpointLeaseManager.UpdateLeaseCoreAsync(AzureBlobLease 租约) 在 Microsoft.Azure.EventHubs.Processor.AzureStorageCheckpointLeaseManager.UpdateCheckpointAsync(租约,检查点检查点) 在 Microsoft.Azure.EventHubs.Processor.PartitionContext.PersistCheckpointAsync(检查点检查点)在 Microsoft.Azure.EventHubs.Processor.PartitionPump.CloseAsync(CloseReason 原因)的 CloseAsync(PartitionContext 上下文,CloseReason 原因)
我们正在使用 Microsoft.Azure.EventHubs v4.3.0 和 Microsoft.Azure.EventHubs.Processor v4.3.0
我们担心在这种情况下,不会写入检查点,并且在处理器重新启动时,由于无法保存最近的检查点位置,将会出现大量重复。有没有办法了解导致故障的原因以及如何修复它们?
解决方案
麻烦您了。修复将在本周的 4.3.1 版本中发布。
推荐阅读
- ios - 当表格视图滚动Swift时,文本字段变为空
- html - 逐列打印
- c# - 无法在 C# 中发送传真,状态显示为pending
- automation - 使用 G1ANT 打开 Chrome 时出现“元素不可见”错误
- android - Android WorkManager - 从 WorkManager 获取未完成的作品
- java - setter 的参数类型是否与 getter 的返回类型匹配?Bean 属性“引擎”不可写或设置方法无效
- python - 使用 Python 播放音频并获取当前的播放秒数?
- java - UDP数据报套接字未接收数据
- python-3.x - tweepy.stream 在streaming.py 中给出'None Type' 对象没有属性'on_exception'
- r - 从文本中提取单词并从中创建向量