【发布时间】:2019-01-24 22:35:42
【问题描述】:
Event Grid 的文档指出它内置了 delivery and retry mechanism,并给出了一个示例来说明什么是成功或失败的尝试。文档非常清楚地说明了单个事件处理程序会发生什么。
我的问题是,如果有多个事件处理程序,而只有一个处理程序未能接收到事件,会发生什么?是仅针对该处理程序重试事件,还是所有处理程序都会看到重试?
【问题讨论】:
-
我只能假设,如果事件无法传递给 任何 个订阅者,那么它将是死信。话虽如此,最好在文档中提出这个问题。我做了here。
-
谢谢肖恩。我的问题实际上是关于重新传递,以及消息是重新传递给 所有 订阅者还是只传递给失败的订阅者,但死信也是一个很好的问题。我会将其添加到 GitHub 问题中。与此同时,我不确定是关闭这个问题还是让它保持打开状态
-
保持打开状态。 EG团队或您自己将回答。无论哪种方式,人们都会找到答案。
-
AEG 事件模型使用扇出模式将事件消息传递给订阅的处理程序。每个风扇输出的这种逻辑连接由订阅描述,它们彼此完全透明并且松散地解耦。此扇出模式中每个事件传递的行为基于它们的订阅,例如重试、死信、过滤等。注意,根据订阅者端点类型,我们可以轻松更改默认传递模式,例如 PushWithAck到 Pull 模式(异步),例如:存储队列和 HybridConnection
-
出于测试目的(例如您的问题),您可以使用测试工具codeproject.com/Articles/1254463/Azure-Event-Grid-Tester 在哪里可以模拟您的情况,例如:自定义主题 + 存储队列订阅者 + HybridConnection 订阅者出现错误(503) 交付模拟。
标签: azure-eventgrid