我有一个lambda函数,我想为它创建一个SQS死信队列。我首先在Terraform中创建SQS:
resource "aws_sqs_queue" "my_lambda_dlq" {
name = "my_lambda_dlq"
delay_seconds = 90
max_message_size = 2048
message_retention_seconds = 86400
receive_wait_time_seconds = 10
redrive_policy = jsonencode({
deadLetterTargetArn = aws_sqs_queue.terraform_queue_deadletter.arn
maxReceiveCount = 4
})
tags = local.default_tags
}
这是来自Terraform的例子。但是,我被redrive_policy卡住了。
我找不到这方面的任何最佳做法。有人有这方面的经验吗?
我在这里的主要目标是不释放任何信息。谢谢,Luminita
通过指定redrive_policy
,您可以配置不可处理/失败消息的发送位置。您将这些消息发送到的队列称为dlq/dead-letter-queue,但它仍将是一个正常队列。
是的,一个DLQ可以再次拥有另一个DLQ,因为每个DLQ本身仍然只是一个队列。我想不出任何情况下你会想要这样做,但没有什么能阻止你这样做。
“如果我设置了redrive_policy,那意味着我在DLQ上设置了DLQ”--技术上DLQ不存在,AWS只知道队列。通过将一个队列配置为另一个的dlq,您不会改变这两个队列都是队列的情况。如果将任何队列配置为任何其他队列的重新驱动目标,则该队列就是DLQ。
死信队列(Dead Letter Queue)本质上同普通的Queue没有区别,只是它的产生是为了隔离和分析其他Queue(源Queue)未成功处理的消息。 创建死信队列的方法参见createQueue() API,与创建普通队列无异, 死信队列不可调用deadMessage(), deadMessageBatch API,其他操作都与对普通Queue的操作无异。 为了将源Queue的未能成功处理
对于异步的触发器,平台会对函数失败的任务进行最多3次重试。 在新建触发器的时候,为触发器配置一条死信队列,从用户的EMQ队列中选择一条,用于接收函数失败的任务。 在设置死信队列前,请对group: CIf76b0600-24e9-42c4-acf3-d491fbd9fd71 授予 FULL_CONTROL 权限,若不授予权限,平台将丢弃失败的任务信息。 消息的内容如下,以后可能增加字段,请用户在
什么是最好的方法来实现死信队列(DLQ)的概念在Spring Boot 2.0应用程序中使用sping-kafka 2.1. x有所有的消息被处理失败的@KafkaListener方法的一些bean发送到一些预定义的Kafka DLQ主题并且不丢失一条信息? 因此,Kafka的记录是: 已成功处理, 处理失败,并发送到DLQ主题, 处理失败,未发送到DLQ主题(由于意外问题),因此将再次被侦听器使
未创建我的exchange和dlq。我在下面的YML中有以下内容。我确实创建了一个匿名队列,但也没有发布消息。任何想法。
我正在尝试设计一个基于SQS、Lambda和SNS的小型消息处理系统。在失败的情况下,我希望将消息排入死信队列(DLQ)中,并调用webhook。 目前,如果一切顺利,流程应该是这样的: SQS(用于处理重试)将消息排入队列 lambda由SQS调用并处理消息 lambda发送webhook,并正常完成 如果lambda中的某些东西出错(无法调用success webhook,无法处理手头的任务)
我有一个使用Spring Cloud Streams-RabbitMQ在微服务中交换消息的项目。对我的项目至关重要的一件事是,我不能丢失任何信息。 null 我是这些框架的新手,我希望你能帮助配置我的...