事件网格发送具有不同ID的重复事件

问题描述 投票:6回答:1

我已经配置了事件网格订阅,以在创建资源时针对资源组中的事件启动Web挂接调用。

已成功处理Web挂钩调用,并且我返回200。为保持幂等性,我将发生的所有事件及其事件ID存储在webhook_events表中。检查任何新事件,以查看它们是否存在于该表中。

这对我来说是有问题的,因为我多次收到同一事件,但具有不同的ID。我通过差异检查器将其发送,并确认事件之间的唯一区别是它们的eventTime和它们的ID(但这是同一事件,即SQL数据库上的Microsoft.Resources.ResourceWriteSuccess。)

是否有原因,事件网格以相同的ID多次向我发送相同的事件?

编辑:

我已经与Microsoft谈过此事,他们通知我,如果未返回接受的响应代码,则该事件将使用不同的ID复制并再次发送。这显然是一个痛苦的工作。

我立即以200 OK响应,但是Event Grid太大且处理得太慢,无法接受我的事件,因此它再次发送了事件。我想挑战任何人,寻找一种区分这些重复事件的方法。

azure azure-sql-database azure-eventhub azure-sql-server azure-eventgrid
1个回答
4
投票

这是通过查看documentation来实现EventGrid的方式>

如果端点在3分钟内做出响应,事件网格将尝试尽最大努力从重试队列中删除事件,但仍可能会收到重复的邮件。

您可以使用后端代码来清理日志和存储的数据,并使用事件和消息ID来识别重复项。

© www.soinside.com 2019 - 2024. All rights reserved.