如何忽略来自aws SNS的重复消息.之后如何测试重复消息



我想通过lambda处理程序中的SQS处理来自SNS的消息。

我必须检查消息是否重复,因为SNS、SQS不是FIFO。

现在我想用generandDB管理messageId使用ConsistentRead函数。如果我可以从dynamoDB中ConsistentRead,那么我将忽略该消息。

这种忽略信息的方式合理吗?如果你知道另一种方法,请教我。

如果我可以忽略重复的消息,如何测试?

感谢您的阅读!

只需使用SNS FIFO主题和SQS FIFO队列进行消息排序和重复数据消除。

如何测试消息重复项取决于如何定义重复项。在大多数情况下,整个消息正文必须完全匹配才能被视为重复。在这种情况下,您可以计算消息体的md5sha1散列,以存储在DynamoDB表中。

您还可以设置一个时间窗口,将两条消息视为重复消息。例如,只有在过去1小时或1天内提交了同一封邮件时,该邮件才是重复邮件。在这种情况下,您可以将TTL添加到DynamoDB中,以自动删除比TTL旧的消息。

最新更新