我有以下管道来移动事件: -
服务 - > SNS - > AWS Lambda - > Dynamo Db。
因此,基本上,Service正在向SNS主题发布数据,该主题由AWS Lambda Function订阅。然后,此AWS Lambda函数将数据推送到Dynamo Db。现在,我正在使用AWS Lambda添加DLQ来存储错误处理的消息。
错误消息可能是由于发布者应用程序或使用者应用程序中的错误引起的。例如。 Publisher更改了正在发布的数据的格式,并说我在AWS Lambda中不支持它,并且它给出了一些错误。
我想知道在向DLQ推送此类消息之后,我们通常做什么?
答案 0 :(得分:0)
AWS Lambda Dead Letter Queues将无法处理的事件定向到您为Lambda函数配置的Amazon SNS主题或Amazon SQS队列。
因此,使用订阅了SNS主题的服务或从SQS读取消息来处理错误并使用给定的有效负载由开发人员决定。解决列出的问题,
答案 1 :(得分:0)
除了Lambda DLQ,您还应该考虑添加SNS DLQ:
答案 2 :(得分:0)
我可以在这里评论SQS-> DLQ 不需要移动消息,因为它将带来许多其他挑战,例如重复消息,恢复方案,丢失的消息,重复数据删除检查等。
这是我们实施的解决方案-
通常,我们将DLQ用于暂时性错误,而不是永久性错误。因此采取了以下方法-
像常规队列一样从DLQ中读取消息
好处然后遵循常规队列遵循的相同代码。
在中止作业或进程在处理过程中终止时(例如,实例被杀死或进程终止)更可靠
好处扩展了消息的可见性,因此没有其他线程可以处理它们。
好处仅在出现永久错误或成功时删除消息。
好处